Я хочу создать XML-файл, который содержит свою схему, а также XML-данные, содержащиеся с использованием Java, насколько я знаю, это возможно в C # .NET. Возможно ли это в Java ???
Мой XML-файл должен выглядеть так, как показано ниже.
<transaction>
<xs:schema id="transaction" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="transaction" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="id">
<xs:complexType>
<xs:sequence>
<xs:element name="in" type="xs:string" minOccurs="0" />
<xs:element name="sn" type="xs:string" minOccurs="0" />
<xs:element name="book" type="xs:string" minOccurs="0" />
<xs:element name="author" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element name="dateTime" type="xs:dateTime" minOccurs="0" />
<xs:element name="key" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="productData">
<xs:complexType>
<xs:sequence>
<xs:element name="dateTime" type="xs:dateTime" minOccurs="0" />
<xs:element name="key" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<id>
<in>computer</in>
<sn>1234567</sn>
<book>JAVA</book>
<author>klen</author>
</id>
<data>
<dateTime>2011-06-24T17:08:36.3727674+05:30</dateTime>
<key>Err</key>
</data>
</transaction>
В моем приведенном примере мой xml-файл содержит данные, а также схему, мне нужно сгенерировать этот тип файла из схемы с использованием Java.
Я могу создать только часть XML, используя jaxb, и основная часть моего кода выглядит как
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);
jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT,true);
jaxbMarshaller.marshal(transaction, file);
jaxbMarshaller.marshal(transaction, System.out);
но я не могу добавить часть встроенной XML-схемы с моим XML-файлом.
@ jtahlborn ок, я постараюсь выкопать это, спасибо за вашу помощь. У меня есть еще один вопрос, который я слышал о том, что stax лучше, чем dom для записи XML, поэтому я хочу использовать stax, можно ли задать пространство имен и другие вещи , У меня есть другой вопрос, правда ли, что jaxb используется только для преобразования XML в XML-схему (без маршалинга) и XML-схемы в XML (маршалинг), и если мне нужно написать XML-файл, то нам нужно использовать jaxb [DOM, STAX (поток) на основе чтения записи), SAX (только чтение потока)].