1

XML ドキュメントの XML スキーマを生成する際にいくつかの問題があります。XML ドキュメントは次のようになります。

<HEADER>
    <ID>64639</ID>
    ....
    <INCIDENT>
        <HEADER>64639</HEADER>
    </INCIDENT>
    <INCIDENT>
        <HEADER>64639</HEADER>
    </INCIDENT>
    ....
</HEADER>

これまでのところ、次の構造を達成しました。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        elementFormDefault="qualified">

<xsd:element name="HEADER">
    <xsd:complexType>
        <xsd:all>
            <xsd:element minOccurs="1" name="ID" nillable="false" type="xsd:integer"/>
        </xsd:all>
    </xsd:complexType>
    <xsd:key name="SYS_C0032500">
        <xsd:selector xpath="."/>
        <xsd:field xpath="ID"/>
    </xsd:key>
    <xsd:keyref name="SYS_C0032500_HEADER.ID_INCIDENT.HEADER_" refer="SYS_C0032500">
        <xsd:selector xpath="INCIDENT"/>
        <xsd:field xpath="HEADER"/>
    </xsd:keyref>
</xsd:element>

<xsd:element name="INCIDENT">
    <xsd:complexType>
        <xsd:all>
            <xsd:element minOccurs="1" name="HEADER" nillable="false" type="xsd:integer"/>
        </xsd:all>
    </xsd:complexType>
    <xsd:key name="IDK">
        <xsd:selector xpath="."/>
        <xsd:field xpath="HEADER"/>
    </xsd:key>
</xsd:element>

</xsd:schema>

このタスクの条件は、 and 要素を使用してデータベースの制約をシミュレートすることです。現在、次のようなエラー メッセージが表示されます。

エンジン名: Xerces 重大度: エラー 説明: cvc-complex-type.2.4.d: 要素 'INCIDENT' で始まる無効なコンテンツが見つかりました。この時点では、子要素は想定されていません。開始位置: 3:6 終了位置: 3:14 URL: http://www.w3.org/TR/xmlschema-1/#cvc-complex-type

私の他の問題は、より多くのINCIDENTパーツに付属しています。maxOccurs 属性がない場合、INCIDENT 要素を追加するにはどうすればよいですか?

いつも助けてくれてありがとう!

よろしく、ジョー

4

1 に答える 1

2

サンプルのインスタンス ドキュメントでは、HEADER のコンテンツ モデルは「1 つ以上の INCIDENT が後に続く ID」のように見えます。XSD では次のようになります。

<xsd:element name="HEADER">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="ID" nillable="false" type="xsd:integer"/>
            <xsd:element name="INCIDENT" minOccurs="1" maxOccurs="unbounded" type="..."/>
        </xsd:all>
    </xsd:complexType>
    ...
于 2012-09-18T20:41:34.427 に答える