0

これが私のXSDです。なぜこのエラーが発生し続けるのか理解できません:

CDIER0202E: XML スキーマのロード中に内部致命的 DOM エラーが発生しました=:urn|library|Test123247_1|resource|SmallCase.xsd:urn|library|Test123247_1|resource|SmallCase.xsd:urn|library|Test123247_1|resource|SmallCase.xsd:3 :35:322:要素「xsd:element」のプレフィックス「xsd」はバインドされていません..

編集後の新しい XSD は次のとおりです。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:scotiaXML="http://xml.scotia.com"  targetNamespace="http://xml.scotia.com" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<!-- Begin Level 1 =============================================-->
<xsd:element name="OTC_Matching" type="temp"/>
<xsd:complexType name="temp" mixed="false">
    <xsd:sequence>
        <xsd:choice>
            <xsd:element ref="PostTrade"/>
        </xsd:choice>
    </xsd:sequence>
</xsd:complexType>
<!-- End Level 1 =============================================-->
<xsd:element name="PostTrade" type="PostTradeTransaction"/>
<xsd:complexType name="PostTradeTransaction" abstract="true">
    <xsd:sequence>
        <xsd:choice>
            <xsd:element name="elem1" type="xsd:string"/>
        </xsd:choice>
    </xsd:sequence>
</xsd:complexType>

4

2 に答える 2

3

最初の問題は、名前空間xsdを何にも割り当てていないことです。なぜxsとxsdを使用しているのですか?どこでもxsdをxsに置き換えたいと思います。

2番目の問題は、クローズタグを指定していないことです。

3番目の問題は、PostTradeがOTC_Matchingのシーケンスにあることを示していないことです。

このスキーマで検証するサンプルxmlを提供できますか?

これはさらに進んで、私にエラーを与えます:

D:\downloads>\bin\xmllint.exe --schema y.xsd x1.xml
<?xml version="1.0"?>
<OTC_Matching xmlns="http://xml.scotia.com">
<PostTrade>
<elem1/>
</PostTrade>
</OTC_Matching>
x1.xml:2: element PostTrade: Schemas validity error : Element '{http://xml.scoti
a.com}PostTrade': The type definition is abstract.
x1.xml fails to validate

これとともに

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:scotiaXML="http://xml.scotia.com" targetNamespace="http://xml.scotia.com" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
  <!-- Begin Level 1 =============================================-->
  <xs:element name="OTC_Matching">
    <xs:complexType mixed="false">
      <xs:sequence>
        <xs:choice>
          <xs:element name="PostTrade" type="scotiaXML:PostTradeTransaction"/>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <!-- End Level 1 =============================================-->
  <xs:complexType name="PostTradeTransaction" abstract="true">
    <xs:sequence>
      <xs:choice>
        <xs:element name="elem1" type="xs:string"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
于 2012-05-08T17:35:14.813 に答える
0

正しい xsd は次のとおりです。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="foo" version="1.0" >
<!-- Begin Level 1 =============================================-->
<xsd:element name="OTC_Matching">
    <xsd:complexType mixed="false">
        <xsd:sequence>
            <xsd:choice>
                <xsd:element ref="PostTrade" xmlns="foo"/>
            </xsd:choice>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>
<!-- End Level 1 =============================================-->
<xsd:element name="PostTrade" type="PostTradeTransaction" xmlns="foo"/>
<xsd:complexType name="PostTradeTransaction" abstract="true" xmlns="foo">
    <xsd:sequence>
        <xsd:choice>
            <xsd:element ref="PostTrade" xmlns="foo"/>
        </xsd:choice>
    </xsd:sequence>
</xsd:complexType>

于 2012-05-09T13:08:36.377 に答える