当我整理来自JAXB生成的xsi模式类的XML时,根节点缺少xmlns:xsi信息,如下所示。关于如何在我整理的XML中获取名称空间信息,有什么想法吗?
当前马歇尔结果:
<exampleType>
期望的马歇尔结果:
<exampleType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../schemas/example.xsd">
我的架构(它的示例部分):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0.1">
<xs:element name="project" type="exampleType">
<xs:annotation>
<xs:documentation>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../schemas/example.xsd"
</xs:documentation>
</xs:annotation>
……
要使xsi: noNamespaceSchemalocation
模式位置属性出现在编组的XML中,您需要使用JAXB_NO_NAMESPACE_SCHEMA_LOCATION
属性在Marshaller
上设置它。
marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, "../schemas/example.xsd");
XML信封命名空间的正确URI是什么。我见过很多,例如。”http://www.w3.org/2001/12/soap-envelope“,”http://www.w3.org/2001/06/soap-envelope“,”http://www.w3.org/2003/05/soap-envelope“,”http://schemas.xmlsoap.org/soap/envelope/“。请告
我正在开发一个客户端来使用 Web 服务,但由于某种原因,除非所有命名空间都正确且没有任何前缀,否则我的请求没有得到正确处理。 我所有的类都是由服务提供商使用提供的XSD和WSDL创建的。 NfeDadosMsg.class 包装信息.java TConsStatServ.class package br.inf.portalfiscal.nfe; 包装信息.java 输出xml: 由于某种原因,
供应商提供的XML如下: 请注意,没有声明,供应商也没有提供模式。这不能更改,供应商将来会继续这样发布XML。 为了生成JAXB绑定,我创建了如下模式: 请注意,我已经声明了一个或多或少有意义的命名空间(“http://acme.com/schema”),以便它可以用于元素引用等。XJC 生成以下: 然后,我尝试解组XML文档: 我得到的例外是: 显然,这是因为XML元素属于一个空的名称空间,而J
我想将一个xml文件映射到Java对象。我有一个验证xml的模式。 爪哇类 PersonDetails.xsd 个人详细信息.xml 个人.class personNo返回null。如果我从xsd和xml中删除名称空间和xmlns声明,我可以得到正确的值。 当我尝试使用相同的模式进行Marshall时,我收到了以下错误:
2)如果我按照下面的方式编辑package-info,那么它是很好的,但是问题是我创建的是一个JAXB整数元素如下所示,前缀删除没有应用于这些元素
我花了一些时间来调查是什么问题,但我不能解决它。当我在XML下面反封送和回封送时,我看到的是不同的XML。 在上面的xml中,只有一个标记(第一个),其余所有(包括名称空间)都是意外元素。另一个应用程序发送上述XML。 null 我真的不明白QName的事