当前位置: 首页 > 知识库问答 >
问题:

XSD命名空间未出现在JAXB封送XML中

张岳
2023-03-14

当我整理来自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>

……

共有1个答案

卢皓轩
2023-03-14

要使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的事