web-dev-qa-db-ja.com

xmln:tnsおよびtargetNamespace

トップtargetNamespace要素でschema属性とxmlns:tns属性の両方を宣言するXSDスキーマドキュメントがいくつかあります。例えば。 ここから をとった次のもの。また、同じ文字列値を持つようです。 targetNamespaceの役割は理解していますが、その上でxmlns:tnsは何をしますか?

<?xml version="1.0" encoding="UTF-8"?>
<schema
    xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/Product"
    xmlns:tns="http://www.example.org/Product"
    elementFormDefault="qualified">
...
21

スキーマの後半で名前空間を参照できます。たとえば、名前付きの型を宣言し、その型の要素も宣言する場合

_<complexType name="someType">
  <!-- ... -->
</complexType>

<element name="someElement" type="tns:someType" />
_

_type="someType"_名前空間(スキーマファイルの_http://www.w3.org/2001/XMLSchema_)ではなく(存在しない)someTypeを参照するため、単に_xmlns="..."_と言うだけでは機能しません。 _http://www.example.org/Product_名前空間にあるものよりも。

36
Ian Roberts