Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JAXB and inheritance. Converting xml to java object

GoenkaJun 26 2014 — edited Sep 28 2014

I have a schema "FreeStyle.xsd" i used JAXB to generate POJO's . I get around 15 classes. I have a config.xml which is compliant to this schema . Now i want to write a java program which takes the config.xml and converts it into a java object . Please anybody help me with this . Thanks in advance

Freestyle.xsd

<?xml version="1.0" encoding="windows-1252"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="FreeStyleProject" type="hudson.model.FreeStyleProject"/>

<xsd:complexType name="hudson.model.FreeStyleProject">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.Project">

    <xsd:sequence/>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="hudson.model.Project">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.BaseBuildableProject">

    <xsd:sequence/>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="hudson.model.BaseBuildableProject">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.AbstractProject">

    <xsd:sequence/>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="hudson.model.AbstractProject">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.Job">

    <xsd:sequence>

     <xsd:element name="concurrentBuild" type="xsd:boolean"/>

     <xsd:element name="downstreamProject" type="hudson.model.AbstractProject"

                  minOccurs="0" maxOccurs="unbounded"/>

     <xsd:element name="scm" type="hudson.scm.SCM" minOccurs="0"/>

     <xsd:element name="upstreamProject" type="hudson.model.AbstractProject"

                  minOccurs="0" maxOccurs="unbounded"/>

    </xsd:sequence>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="hudson.scm.SCM">

  <xsd:sequence>

   <xsd:element name="browser" type="hudson.scm.RepositoryBrowser"

                minOccurs="0"/>

   <xsd:element name="type" type="xsd:string" minOccurs="0"/>

  </xsd:sequence>

</xsd:complexType>

<xsd:complexType name="hudson.scm.RepositoryBrowser">

  <xsd:sequence/>

</xsd:complexType>

<xsd:complexType name="hudson.model.Job">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.AbstractItem">

    <xsd:sequence>

     <xsd:element name="buildable" type="xsd:boolean"/>

     <xsd:element name="build" type="hudson.model.Run" minOccurs="0"

                  maxOccurs="unbounded"/>

     <xsd:element name="cascadingChildrenName" type="xsd:string" minOccurs="0"

                  maxOccurs="unbounded"/>

     <xsd:element name="color" type="hudson.model.BallColor" minOccurs="0"/>

     <xsd:element name="firstBuild" type="hudson.model.Run" minOccurs="0"/>

     <xsd:element name="healthReport" type="hudson.model.HealthReport"

                  minOccurs="0" maxOccurs="unbounded"/>

     <xsd:element name="inQueue" type="xsd:boolean"/>

     <xsd:element name="keepDependencies" type="xsd:boolean"/>

     <xsd:element name="lastBuild" type="hudson.model.Run" minOccurs="0"/>

     <xsd:element name="lastCompletedBuild" type="hudson.model.Run"

                  minOccurs="0"/>

     <xsd:element name="lastFailedBuild" type="hudson.model.Run" minOccurs="0"/>

     <xsd:element name="lastStableBuild" type="hudson.model.Run" minOccurs="0"/>

     <xsd:element name="lastSuccessfulBuild" type="hudson.model.Run"

                  minOccurs="0"/>

     <xsd:element name="lastUnstableBuild" type="hudson.model.Run"

                  minOccurs="0"/>

     <xsd:element name="lastUnsuccessfulBuild" type="hudson.model.Run"

                  minOccurs="0"/>

     <xsd:element name="nextBuildNumber" type="xsd:int"/>

     <xsd:element name="property" type="hudson.model.JobProperty" minOccurs="0"

                  maxOccurs="unbounded"/>

     <xsd:element name="queueItem" type="hudson.model.Queue-Item"

                  minOccurs="0"/>

    </xsd:sequence>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="hudson.model.Queue-Item">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.Actionable">

    <xsd:sequence>

     <xsd:element name="blocked" type="xsd:boolean"/>

     <xsd:element name="buildable" type="xsd:boolean"/>

     <xsd:element name="id" type="xsd:int">

      <xsd:annotation>

       <xsd:documentation>VM-wide unique ID that tracks the {@link Task} as it

                          moves through different stages in the queue (each

                          represented by different subtypes of {@link Item}.</xsd:documentation>

      </xsd:annotation>

     </xsd:element>

     <xsd:element name="inQueueSince" type="xsd:long"/>

     <xsd:element name="params" type="xsd:string" minOccurs="0"/>

     <xsd:element name="stuck" type="xsd:boolean"/>

     <xsd:element name="task" type="xsd:anyType" minOccurs="0">

      <xsd:annotation>

       <xsd:documentation>Project to be built.</xsd:documentation>

      </xsd:annotation>

     </xsd:element>

     <xsd:element name="why" type="xsd:string" minOccurs="0"/>

    </xsd:sequence>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="hudson.model.Actionable">

  <xsd:sequence>

   <xsd:element name="action" type="xsd:anyType" minOccurs="0"

                maxOccurs="unbounded"/>

  </xsd:sequence>

</xsd:complexType>

<xsd:complexType name="hudson.model.JobProperty">

  <xsd:sequence/>

</xsd:complexType>

<xsd:complexType name="hudson.model.HealthReport">

  <xsd:sequence>

   <xsd:element name="description" type="xsd:string" minOccurs="0"/>

   <xsd:element name="iconUrl" type="xsd:string" minOccurs="0"/>

   <xsd:element name="score" type="xsd:int"/>

  </xsd:sequence>

</xsd:complexType>

<xsd:complexType name="hudson.model.Run">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.Actionable">

    <xsd:sequence>

     <xsd:element name="artifact" type="hudson.model.Run-Artifact" minOccurs="0"

                  maxOccurs="unbounded"/>

     <xsd:element name="building" type="xsd:boolean"/>

     <xsd:element name="description" type="xsd:string" minOccurs="0"/>

     <xsd:element name="duration" type="xsd:long"/>

     <xsd:element name="fullDisplayName" type="xsd:string" minOccurs="0"/>

     <xsd:element name="id" type="xsd:string" minOccurs="0"/>

     <xsd:element name="keepLog" type="xsd:boolean"/>

     <xsd:element name="number" type="xsd:int"/>

     <xsd:element name="result" type="xsd:anyType" minOccurs="0"/>

     <xsd:element name="timestamp" type="xsd:long" minOccurs="0"/>

     <xsd:element name="url" type="xsd:string" minOccurs="0"/>

    </xsd:sequence>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:complexType name="hudson.model.Run-Artifact">

  <xsd:sequence>

   <xsd:element name="displayPath" type="xsd:string" minOccurs="0"/>

   <xsd:element name="fileName" type="xsd:string" minOccurs="0"/>

   <xsd:element name="relativePath" type="xsd:string" minOccurs="0">

    <xsd:annotation>

     <xsd:documentation>Relative path name from {@link Run#getArtifactsDir()}</xsd:documentation>

    </xsd:annotation>

   </xsd:element>

  </xsd:sequence>

</xsd:complexType>

<xsd:complexType name="hudson.model.AbstractItem">

  <xsd:complexContent>

   <xsd:extension base="hudson.model.Actionable">

    <xsd:sequence>

     <xsd:element name="description" type="xsd:string" minOccurs="0"/>

     <xsd:element name="displayName" type="xsd:string" minOccurs="0"/>

     <xsd:element name="name" type="xsd:string" minOccurs="0"/>

     <xsd:element name="url" type="xsd:string" minOccurs="0"/>

    </xsd:sequence>

   </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

<xsd:simpleType name="hudson.model.BallColor">

  <xsd:restriction base="xsd:string">

   <xsd:enumeration value="red"/>

   <xsd:enumeration value="red_anime"/>

   <xsd:enumeration value="yellow"/>

   <xsd:enumeration value="yellow_anime"/>

   <xsd:enumeration value="green"/>

   <xsd:enumeration value="green_anime"/>

   <xsd:enumeration value="blue"/>

   <xsd:enumeration value="blue_anime"/>

   <xsd:enumeration value="grey"/>

   <xsd:enumeration value="grey_anime"/>

   <xsd:enumeration value="disabled"/>

   <xsd:enumeration value="disabled_anime"/>

   <xsd:enumeration value="aborted"/>

   <xsd:enumeration value="aborted_anime"/>

  </xsd:restriction>

</xsd:simpleType>

</xsd:schema>

Config.xml

<?xml version='1.0' encoding='UTF-8'?>

<project>

  <actions/>

  <description>Sample job ..</description>

  <project-properties class="java.util.concurrent.ConcurrentHashMap">

    <entry>

      <string>hudson-plugins-disk_usage-DiskUsageProperty</string>

      <base-property>

        <originalValue class="hudson.plugins.disk_usage.DiskUsageProperty"/>

        <propertyOverridden>false</propertyOverridden>

      </base-property>

    </entry>

    <entry>

      <string>jdk</string>

      <string-property>

        <originalValue class="string">(Inherit From Job)</originalValue>

        <propertyOverridden>false</propertyOverridden>

      </string-property>

    </entry>

    <entry>

      <string>scm</string>

      <scm-property>

        <originalValue class="hudson.scm.NullSCM"/>

        <propertyOverridden>false</propertyOverridden>

      </scm-property>

    </entry>

  </project-properties>

  <keepDependencies>false</keepDependencies>

  <creationTime>1402648240275</creationTime>

  <properties/>

  <cascadingChildrenNames class="java.util.concurrent.CopyOnWriteArraySet"/>

  <cascading-job-properties class="java.util.concurrent.CopyOnWriteArraySet">

    <string>hudson-plugins-batch_task-BatchTaskProperty</string>

    <string>hudson-plugins-disk_usage-DiskUsageProperty</string>

    <string>hudson-plugins-jira-JiraProjectProperty</string>

    <string>org-hudsonci-plugins-snapshotmonitor-WatchedDependenciesProperty</string>

    <string>hudson-plugins-promoted_builds-JobPropertyImpl</string>

  </cascading-job-properties>

  <scm class="hudson.scm.NullSCM"/>

  <canRoam>false</canRoam>

  <disabled>false</disabled>

  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>

  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>

  <concurrentBuild>false</concurrentBuild>

  <cleanWorkspaceRequired>false</cleanWorkspaceRequired>

</project>

the file generated by JAXB are

com\model\HudsonModelAbstractItem.java

com\model\HudsonModelAbstractProject.java

com\model\HudsonModelActionable.java

com\model\HudsonModelBallColor.java

com\model\HudsonModelBaseBuildableProject.java

com\model\HudsonModelFreeStyleProject.java

com\model\HudsonModelHealthReport.java

com\model\HudsonModelJob.java

com\model\HudsonModelJobProperty.java

com\model\HudsonModelProject.java

com\model\HudsonModelQueueItem.java

com\model\HudsonModelRun.java

com\model\HudsonModelRunArtifact.java

com\model\HudsonScmRepositoryBrowser.java

com\model\HudsonScmSCM.java

com\model\ObjectFactory.java

Any help will be appreciated .

Thanks in advance

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 26 2014
Added on Jun 26 2014
1 comment
1,865 views