0

簡単にするために、また概念的に関連しているため、ファイルの配列をすべて同じ名前空間に配置したいと思います。他のスキーマ ファイルを含み、基本的にグローバル ルート要素として機能するメインまたは中央の xsd があります。私の問題は例で最もよく説明されていますが、基本的に非中央スキーマを検証することができず、名前空間の問題です:

スキーマ 1 (サポート):

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            targetNamespace="http://www.company.org" 
            xmlns="http://www.person.org" 
            elementFormDefault="qualified">

    <xsd:simpleType name="test">
        <xsd:restriction base="xsd:string">
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="PersonType">
        <xsd:sequence>
            <xsd:element name="Name" type="test" />
            <xsd:element name="SSN" type="xsd:string" />
        </xsd:sequence>
    </xsd:complexType>

</xsd:schema>

スキーマ 2 (中央):

<?xml version="1.0" encoding="UTF-8"?>

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

    <xsd:include schemaLocation="http://www.person.org"/>

    <xsd:element name="Company">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Person" type="PersonType"
                             maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

スキーマ 2 は問題ありませんが、スキーマ 1 は検証されません。「test」には名前空間がありません。すべてのファイルに 1 つの名前空間を使用するという意図を損なうことなく、名前空間を指定する方法がわかりません。

4

1 に答える 1