gpt4 book ai didi

namespaces - 编码后缺少 JAXB 命名空间

转载 作者:行者123 更新时间:2023-12-04 16:58:09 24 4
gpt4 key购买 nike

我已经从 XSD 生成了 Java 类,我想从带有前缀命名空间的 JAXB 类中编码

这是我所拥有的

<?xml version="1.0" encoding="UTF-8"?>  
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/event"
xmlns:tns="http://www.example.org/event"
elementFormDefault="qualified">
<element name="Events" type="tns:EventsType"></element>
<complexType name="EventsType">
<sequence>
<element name="Event" type="tns:inputFlowEventType" maxOccurs="unbounded" minOccurs="1"></element>
</sequence></complexType>
<complexType name="inputFlowEventType">
<sequence>
<element name="DISTRIBUTOR_ID" minOccurs="1" maxOccurs="1">
<simpleType><restriction base="string"><maxLength value="17"></maxLength></restriction></simpleType>
</element>
</sequence>
</complexType>
</schema>

我有这个
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  <Events xmlns="http://www.example.org/event"><Event><DISTRIBUTOR_ID>6</DISTRIBUTOR_ID></Event></Events>

而不是这个
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  <tns:Events xmlns="http://www.example.org/event">    <tns:Event><tns:DISTRIBUTOR_ID>6</tns:DISTRIBUTOR_ID></tns:Event></tns:Events>

有人知道出了什么问题吗?

谢谢

最佳答案

这两个文档在命名空间限定方面是等效的。第一个指定默认命名空间,第二个声明带有前缀的名称。如果您想控制使用的前缀,答案将取决于您使用的 JAXB 实现。 MOXy 将使用在 @XmlSchema 注释中声明的前缀。 JAXB RI 有一个 NamespacePrefixMapper 扩展(MOXy 也支持):

  • http://blog.bdoughan.com/2011/11/jaxb-and-namespace-prefixes.html
  • 关于namespaces - 编码后缺少 JAXB 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10686094/

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