簡體   English   中英

兩個不同的XSD文件中的元素名稱相同

[英]Same element name in two different xsd files

我有兩個xsd文件,但是兩個文件中的元素名稱相同。 因此,為了克服沖突,我創建了綁定文件。

Request.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="XML">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="HEADER"/>
        <xs:element ref="TOUR_OP"/>
        <xs:element ref="CUSTOMERID"/>
        <xs:element ref="DATEDEP"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="HEADER" type="xs:NCName"/>
  <xs:element name="TOUR_OP" type="xs:NCName"/>
  <xs:element name="CUSTOMERID" type="xs:integer"/>
  <xs:element name="DATEDEP" type="xs:integer"/>
</xs:schema>

Response.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="XML">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="HEADER"/>
        <xs:element ref="RESULTS"/>
        <xs:element ref="ENV"/>
        <xs:element ref="APP"/>
        <xs:element ref="VER"/>
        <xs:element ref="STAMP"/>
        <xs:element ref="CLIENT"/>
        <xs:element ref="PIN"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="HEADER" type="xs:NCName"/>
  <xs:element name="RESULTS">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="AEROPLANS"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AEROPLANS">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="AEROPLAN"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="AEROPLAN">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="MARKETCD"/>
        <xs:element ref="AEROPOINT"/>
        <xs:element ref="AERODOLLARS"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="MARKETCD" type="xs:NCName"/>
  <xs:element name="AEROPOINT" type="xs:integer"/>
  <xs:element name="AERODOLLARS" type="xs:decimal"/>
  <xs:element name="ENV" type="xs:NCName"/>
  <xs:element name="APP" type="xs:NCName"/>
  <xs:element name="VER" type="xs:NMTOKEN"/>
  <xs:element name="STAMP" type="xs:string"/>
  <xs:element name="CLIENT" type="xs:NCName"/>
  <xs:element name="PIN" type="xs:integer"/>
</xs:schema>

綁定文件(XJB)

<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
          version="2.1">

        <bindings schemaLocation="TTSAeroplanPointsSuccessResponse_v1.0.xsd">
            <bindings node=".//xsi:attribute[@name='XML']">
                <class name="XMLResponse"/>
            </bindings>
        </bindings>
</bindings>

如您所見,我兩個xsd文件都包含元素名稱=“ XML”,並且創建了綁定文件來克服生成模型類時的沖突。

我收到一個錯誤:“ .// xsi:attribute [@ name ='XML']”的XPath評估導致目標節點為空

請給我建議,我該如何解決。

由於兩個XML元素是不同的,因此請考慮使用不同的名稱-RequestXml,ResponseXml。 因為您不需要使用綁定,所以簡單得多。 保持簡單的原則行之有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM