gpt4 book ai didi

java - 有没有办法使用 jaxb 添加带有 xml 的内联模式

转载 作者:行者123 更新时间:2023-12-01 15:27:47 24 4
gpt4 key购买 nike

有没有办法使用 jaxb 添加带有 xml 的内联模式?我的意思是我需要使用模式生成的 xml 文件添加模式。我给出了一个如下所示的 examole

<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文件

<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>

但我无法使用 is 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);

最佳答案

也许我错过了问题中的一些内容,但是是什么阻止你写下面的两行?

Document trxDoc = .....; // this is what you have after marshalling
Document schemaDoc = .....; // this is your Schema document

Node schemaNode = trxDoc.importNode(schemaDoc.getDocumentElement(), true);
trxDoc.getDocumentElement().appendChild(schemaNode);

这里我假设您有 Schema 文档并将对象编码到 DOM 节点。

关于java - 有没有办法使用 jaxb 添加带有 xml 的内联模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com