如何定义XSD文件以映射没有命名空间的项目

时间:2017-11-06 09:32:32

标签: xml xsd

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
    <ns2:getStudentResponse xmlns:ns2="http://spring.io/guides/gs-producing-web-service">
        <ns2:student>
            <ns2:id>5</ns2:id>
            <ns2:contacs>malibag</ns2:contacs>
            <ns2:contacs>gulsan</ns2:contacs>
            <ns2:item>
                <key>accessCode</key>
                <value>8373</ns2:value>
            </ns2:item>
           </ns2:student>
    </ns2:getStudentResponse>
</SOAP-ENV:Body>

问题是我如何定义XSD文件来映射除了导入或包含东西之外的一个页面中没有命名空间的项目(键,值)。

2 个答案:

答案 0 :(得分:0)

XSD中定义的所有组件都位于其targetNamespace定义的命名空间中。如果您的问题是如何获取没有前缀ns2的xml,则需要将 elementFormDefault =“unqualified”添加到源XSD的 xsd:schema 元素。

例如,它可以添加到complexType中。

  <xsd:complexType name="item">
    <xsd:sequence>
      <xsd:element name="key" type="xsd:string" form="unqualified"/>
      <xsd:element name="value" type="xsd:string" form="unqualified"/>
    </xsd:sequence>
  </xsd:complexType>

然后你得到没有命名空间的元素键和值

答案 1 :(得分:0)

好的,这是你的解决方案。只需添加form并为xml架构中的特定元素设置unqualified即可。

<element name ="" form ="unqualified">