I'm having trouble creating an XML file from XSD using JAXB below is the XSD file used to create it. (Note: Names have been edited due to confidentiality)
<?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>
This is the code I am using to try and create the 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);
}
This is the output
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Test xmlns="http://ibm.org/seleniumframework"/>
How can I get the code to output the screens and the screen tag along with it's properties, I'm not sure what I'm doing wrong.
screenandscreensvariables and not doing anything with them. You only marshaltest. Did you forgettest.setOption3(screen)` or something like that?