私は XML スキーマに不慣れで、xsd:schema
ルート要素のさまざまな名前空間に多数のプレフィックスをバインドし、そのようなスキーマのサブセットもインポートするスキーマ ドキュメントに出くわしています。XML スキーマ ドキュメントの残りの部分では、xsd:schema
要素にバインドされているすべてのプレフィックスを喜んで使用します (インポートされているかどうかに関係なく)。
import
では、その名前空間をプレフィックスに「単に」バインドすることよりも、名前空間の は何を意味するのでしょうか?
私が読んだDefinitive XML Schemaの本から(pg. 66):
インポートは、他の名前空間のコンポーネントを参照することをプロセッサに伝えるために使用されます
私の理解では、それはバインディングの機能でもありますが、違いは何ですか?
具体例
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
xmlns:ssap="http://www.ivoa.net/xml/SSA/v1.0"
xmlns:vm="http://www.ivoa.net/xml/VOMetadata/v0.1"
targetNamespace="http://www.ivoa.net/xml/SSA/v1.0"
elementFormDefault="unqualified"
attributeFormDefault="unqualified"
version="1.0pr2">
<xs:import namespace="http://www.ivoa.net/xml/VOResource/v1.0"
schemaLocation="http://www.ivoa.net/xml/VOResource/v1.0"/>
<!-- ... rest of the schema document follows -->
http://www.ivoa.net/xml/VOResource/v1.0
上記のスキーマ ドキュメントの名前空間は、 vrプレフィックスにバインドされ、インポートされます。他の名前空間は特定のプレフィックスにのみバインドされ、インポートされません。ドキュメントの残りの部分では、vr (バインドされてインポートされた) とssa (バインドされたがインポートされていない) プレフィックスの両方のコンポーネントを使用します。違いは何ですか?