是否有java API来生成具有内联模式定义的xml
我想用java生成包含其模式和xml数据的xml文件,据我所知,这在C#NET中是可能的 我的XML文件应该如下所示是否有java API来生成具有内联模式定义的xml,java,xml,jakarta-ee,xsd,Java,Xml,Jakarta Ee,Xsd,我想用java生成包含其模式和xml数据的xml文件,据我所知,这在C#NET中是可能的 我的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="tran
<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文件中添加内联xml模式部分
@jtahlborn好的,谢谢你的帮助,我会尽力把它挖出来。我还有一个问题,我听说stax比dom更适合xml编写,所以我想使用stax是否可以设置名称空间和其他东西。我还有一个问题,jaxb只用于将xml转换为xml模式(取消封送)和将xml模式转换为xml(封送),如果我需要编写xml文件,那么我们需要使用jaxb[DOM、STAX(基于流的读写)、SAX(仅流读取)]。您会:
(使用一些jaxb配置技巧,您可能会使事务模型具有元素“schema”属性,然后可以从解析的schema文档中设置该属性,并一次性封送整个模型)主要问题是什么?您尝试过什么?@Adel我想在生成的xml文件中添加我的模式在C#中是可能的,但在java中是可能的。@josh我用谷歌搜索它以获取java我得到的答案是JAXB通过marchaling我们从模式中获取xml文件,但我们没有用该xml文件添加模式定义。@josh是否可以使用jaxp从模式中生成xml文件?@moin I假设您正在使用“内联模式”定义从java封送xml文档。你可能想用相应的措辞回答你的问题。主要问题是什么?您尝试过什么?@Adel我想在生成的xml文件中添加我的模式在C#中是可能的,但在java中是可能的。@josh我用谷歌搜索它以获取java我得到的答案是JAXB通过marchaling我们从模式中获取xml文件,但我们没有用该xml文件添加模式定义。@josh是否可以使用jaxp从模式中生成xml文件?@moin I假设您正在使用“内联模式”定义从java封送xml文档。你可能想相应地表达你的问题。这是一项非常繁琐的工作,不可能像c#那样简单地完成。在java中使用jaxb或其他API?@moin-我不知道c#,所以我不知道“喜欢c#”是什么意思。java中有多种生成xml的方法,但没有更多细节,只有c#&java专家可能会给你更有针对性的建议。是的,你是对的。实际上我想知道,我可以使用jaxb或其他api在java中使用内联模式生成xml文件吗?事实上,我没有显示原始xml文件,它的大小非常大,因此很难通过手动编码在xml中手动编码添加节点,所以我想要这个xml文件将使用内联模式生成的api类型我仅使用set()设置节点的值方法?事实上,我是java新手,你能给我一些步骤3和步骤4的代码剪贴吗?因为我不知道如何在tag@moin-您应该能够在本网站上找到大量其他示例,它们向您展示了如何将文件解析为DOM文档以及如何操作DOM文档中的节点/元素。这是一项非常繁琐的工作,不可能像c#那样简单地完成。在java中使用jaxb或其他API?@moin-我不知道c#,所以我不知道“喜欢c#”是什么意思。java中有多种生成xml的方法,但没有更多细节,只有c#&java专家可能会给你更有针对性的建议。是的,你是对的。实际上我想知道,我可以使用jaxb或其他api在java中使用内联模式生成xml文件吗?事实上,我没有显示原始xml文件,它的大小非常大,因此很难通过手动编码在xml中手动编码添加节点,所以我想要这个xml文件将使用内联模式生成的api类型我仅使用set()设置节点的值方法?事实上,我是java新手,你能给我一些步骤3和步骤4的代码剪贴吗?因为我不知道如何在tag@moin-你应该能找到大量的o
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);