、これら三つのXSDを考えてみましょう。それらはすべて、それを参照する1つのグローバルタイプと1つのグローバルエレメント定義を定義します。
まず、上記のようなxsd。今、同じXSD
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/"
xmlns="http://example.com/">
<xsd:element name="aGlobalElement" type="aGlobalType"/>
<xsd:simpleType name="aGlobalType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:schema>
が、ターゲット名前空間の名前空間接頭辞を定義し、使用して:それは、スキーマの名前空間の接頭辞「XSD」とのtargetNamespaceのためのデフォルトの名前空間を使用しています
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/"
xmlns:tns="http://example.com/">
<xsd:element name="aGlobalElement" type="tns:aGlobalType"/>
<xsd:simpleType name="aGlobalType">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
</xsd:schema>
...代わりに、XMLスキーマの名前空間のための「XSD」のデフォルトの名前空間を使用して最終的には、バージョン:
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/"
xmlns:tns="http://example.com/">
<element name="aGlobalElement" type="tns:aGlobalType"/>
<simpleType name="aGlobalType">
<restriction base="string"/>
</simpleType>
</schema>
場合ので、スキーマ作者のほとんどは、最初か最後を選択してくださいデフォルトのネームスペース機能が利用可能な場合は、の何かのために使用するかもしれません。。
私はこのテーマについてのある程度の知識が不足しているかもしれませんが、答えはちょうどすることができませんでした:のxmlnsは、デフォルトの名前空間でありますこのドキュメント(スキーマドキュメント)のtargetNamespaceは、このスキーマドキュメントが検証する名前空間です。そして、このようにしてxmlnsとtargetNamespaceは2つの異なるものですか? – Vering
あなたの最初の文章と私のテスト結果が一致しています。はい、targetNamespaceは、スキーマが検証するドキュメントを参照しています。 targetNamespaceの存在には、 'xmlns'または 'xmlns:xxx'のいずれかが存在する必要もあります。実際には、多くの 'xmlns:xxx'、 'xmlns:yyy'、 'xmlns'を組み合わせて使用することができます。 – ifelsemonkey