2016-06-17 11 views
0

Ich habe eine große Schemadatei (.xsd), die Auswahl hat, die Sie wählen können:in Java XML-String aus einer XSD-Datei generiert

<xs:element name="MyData"> 
    <xs:complexType> 
     <xs:choice maxOccurs="unbounded"> 
      <xs:element name="AAA" type="AAAType" maxOccurs="unbounded" /> 
      <xs:element name="BBB" type="BBBType" maxOccurs="unbounded" /> 
      <xs:element name="CCC" type="CCCType" maxOccurs="unbounded" /> 
      <xs:element name="DDD" type="DDDType" maxOccurs="unbounded" /> 
      <xs:element name="EEE" type="EEEType" maxOccurs="unbounded" /> 
      <xs:element name="FFF" type="FFFType" maxOccurs="unbounded" /> 
      <xs:element name="GGG" type="GGGType" maxOccurs="unbounded" /> 
      <xs:element name="HHH" type="HHHType" maxOccurs="unbounded" /> 
      <xs:element name="III" type="IIIType" maxOccurs="unbounded" /> 
      <xs:element name="JJJ" type="JJJType" maxOccurs="unbounded" /> 
      <xs:element name="KKK" type="KKKType" maxOccurs="unbounded" /> 
      <xs:element name="LLL" type="LLLType" maxOccurs="unbounded" /> 
      <xs:element name="MMM" type="MMMType" maxOccurs="unbounded" /> 
      <xs:element name="NNN" type="NNNType" maxOccurs="unbounded" /> 
      <xs:element name="OOO" type="OOOType" maxOccurs="unbounded" /> 
      <xs:element name="PPP" type="PPPType" maxOccurs="unbounded" /> 
      <xs:element name="QQQ" type="QQQType" maxOccurs="unbounded" /> 
      <xs:element name="RRR" type="RRRType" maxOccurs="unbounded" /> 
      <xs:element name="SSS" type="SSSType" maxOccurs="unbounded" /> 
      <xs:element name="TTT" type="TTTType" maxOccurs="unbounded" /> 
      <xs:element name="UUU" type="UUUType" maxOccurs="unbounded" /> 
      <xs:element name="VVV" type="VVVType" maxOccurs="unbounded" /> 
      <xs:element name="WWW" type="WWWType" maxOccurs="unbounded" /> 
      <xs:element name="XXX" type="XXXType" maxOccurs="unbounded" /> 
      <xs:element name="YYY" type="YYYType" maxOccurs="unbounded" /> 
      <xs:element name="ZZZ" type="ZZZType" maxOccurs="unbounded" /> 
     </xs:choice> 
     <xs:attribute name="version" type="xs:string" /> 
    </xs:complexType> 
</xs:element> 

Jede Art seine eigenen Sequenzen und komplexe Typen hat. Gibt es eine Möglichkeit, etwas in Java zu programmieren, wo ich es als String auswähle, das Programm in der Schemadatei sucht und einen XML-String ausgibt? Ähnlich wie Sie mit dem Schema eine XML-Datei in Eclipse erstellen können, möchte ich dies programmgesteuert tun.

+0

IntelliJ dies leicht macht: Direkt am xsd klicken und die IDE fordern Sie eine XML zu erstellen. – duffymo

+0

Danke für die Antwort; Ich möchte dies jedoch mit Code tun. – syy

Antwort

2

Werfen Sie einen Blick auf JAXB, die Schemadateien liest und Java-Klassen generiert, die den in Ihrem XSD festgelegten Regeln folgen. Es erstellt im Grunde POJO-Objekte, die eine Reihe von Setter haben, um einfach die erforderlichen XML-Daten zu füllen.

JAXB wird häufig verwendet und lohnt sich sowieso.

finden Sie in der offiziellen Dokumentation hier

Lesson: Introduction to JAXB

+0

Danke, ich werde darüber nachlesen. – syy

+0

Wüssten Sie, wie man das mit ADB macht? Gerade rausgefundenes Unternehmen will das nutzen. Ich schaute in die Dokumentation, aber es ist nicht so gut. – syy

+0

Ich bin nur ADB in Axis2, die für SOAP-Anfrage verwendet wird. Hier ein Link, der vielleicht hilft [Axis2 Databinding Framework] (http://axis.apache.org/axis2/java/core/docs/adb/adb-howto.html) – Sanj

Verwandte Themen