Erstellen Sie eine XML-Datei von XSD-Code von JAXB
Ich habe Probleme beim erstellen einer XML-Datei eine XSD mit JAXB unten ist die XSD-Datei verwendet, um es zu schaffen. (Hinweis: Namen wurden editiert wegen Vertraulichkeit)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://ibm.org/seleniumframework" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Test" type="sel:Test">
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="Option1" type="sel:Option1Type" xmlns:sel="http://ibm.org/seleniumframework"/>
<xs:element name="Option2" type="sel:Option2Type" xmlns:sel="http://ibm.org/seleniumframework"/>
<xs:element name="Option3" type="sel:ScreensType" xmlns:sel="http://ibm.org/seleniumframework"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="ScreensType">
<xs:sequence>
<xs:element type="sel:ScreenType" name="Screen" minOccurs="1" maxOccurs="unbounded" xmlns:sel="http://ibm.org/seleniumframework"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ScreenType">
<xs:sequence>
<xs:element name="ScreenData" minOccurs="1" maxOccurs="unbounded" xmlns:sel="http://ibm.org/seleniumframework"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name1" use="required" />
<xs:attribute type="xs:string" name="name2" use="required" />
<xs:attribute type="xs:string" name="name3" use="required" />
</xs:complexType>
</xs:schema>
Dies ist der code, den ich verwende, um zu versuchen, und erstellen Sie die XML:
public void generateXml() throws JAXBException, IOException {
Test test = new Test();
ScreensType screens = new ScreensType();
ScreenType screen = new ScreenType();
screen.setName1("a");
screen.setName2("b");
screen.setName3("c");
File f = new File("new.xml");
JAXBContext context= JAXBContext.newInstance("com.q1labs.qa.xmlgenerator.model.generatedxmlclasses");
Marshaller jaxbMarshaller = context.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(test, f);
jaxbMarshaller.marshal(test, System.out);
}
Dies ist die Ausgabe
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Test xmlns="http://ibm.org/seleniumframework"/>
Wie bekomme ich den code für die Ausgabe des screens, und der Bildschirm tag zusammen mit seinen Eigenschaften, ich bin mir nicht sicher, was ich falsch mache.
Basierend auf Ihren code, den Sie kaum schaffen
screen
und screens
Variablen und nichts zu tun mit Ihnen. Sie nur Marschall test. Did you forget
test.setOption3(Bildschirm) " oder sowas in der Art?
InformationsquelleAutor Colin747 | 2012-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine Instanz von
Test
undScreensType
aber nie legen Sie Ihre Eigenschaften vor dem marshalling in XML. Unten ist der korrigierte code.Ausgabe
Ich froh, dass ich helfen konnte. BTW, ich behaupte, eine Java-XML-und JSON-Binding-Blogs, die Sie nützlich finden können: blog.bdoughan.com
Jubel für das Lesezeichen!
InformationsquelleAutor bdoughan
Nach dem Versuch für ein paar Tage, schließlich war ich in der Lage, zum erstellen der xml aus xsd einwandfrei mit dem unten angegebenen code ein. Hoffe, das hilft :
InformationsquelleAutor Amarnath