0
jaxbを使用してxmlでインラインスキーマを追加する方法はありますか?スキーマを追加する必要があることを意味します。jaxbを使用してインラインスキーマを追加する方法はありますか
<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>
の下に与えられたとして、私は唯一の
<transaction>
<id>
<in>abcd</in>
<sn>1234567</sn>
<book>computer</book>
<author>klen</author>
</id>
<data>
<dateTime>2011-06-24T17:08:36.3727674+05:30</dateTime>
<key>Err</key>
</data>
</transaction>
のようなxmlファイルの外観を生成することができますが、XMLであると私は、インラインXMLSCHEMAを追加することはできません。私のXML生成コードは次のようになります
JAXBContext jaxbContext = JAXBContext.newInstance(Transaction.class);
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);
簡単に説明できますが、私はJavaで新しくて説明できませんのでご説明ください。 – saba
私はあなたのコードごとに文書をマーシャリングするコードを追加しました。DOMパーサーを使用してxmlを作成しましたが、完全にjaxb.isを使用して試してみたいと思いますか? – saba
@saba、http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/Marshaller.htmlを参照してください。DOMノードにマーシャリングする方法の例があります。結果として、あなたのトランザクションのDOM表現(私のテキストに 'trxDoc')があります。次に、スキーマ文書のルート要素を新しく作成したトランザクション文書にインポートします。 – Osw