次のXMLフラグメントの場合:
<project xmlns="http://maven.Apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0
http://maven.Apache.org/xsd/maven-4.0.0.xsd">
xmlns
、xmlns:xsi
、およびxsi:schemaLocation
属性の正確な意味は何ですか?それらはどのように関係していますか? :
とは何ですか?
xsi:schemaLocation=
には2つのURLがあります
xmlns
と同じですが、アクセスすると404エラーが発生します。)1が存在しない場合でも、なぜそこに配置するのですか?
xmlns
は XML勧告のW3C名前空間 の一部です:
プレフィックスxmlnsは、名前空間バインディングの宣言にのみ使用され、定義により名前空間名にバインドされます http://www.w3.org/2000/xmlns / 。
あなたの例では、http://maven.Apache.org/POM/4.0.0
がMavenプロジェクトの要素のデフォルト名前空間であることを宣言しています。
xmlns:xsi
XSDで使用されるコア名前空間の標準名前空間プレフィックス(xsi
)を宣言します:http://www.w3.org/2001/XMLSchema-instance
XML Schema:Structuresは、XMLドキュメントで直接使用するためのいくつかの属性も定義します。これらの属性は、ネームスペース名を持つ別のネームスペースにあります http://www.w3.org/2001/XMLSchema-instance 。簡潔にするために、この仕様のテキストと例では、接頭辞xsi:を使用して、後者の名前空間を表します。実際には、任意のプレフィックスを使用できます。
あなたの例では、xsi
名前空間接頭辞のhttp://www.w3.org/2001/XMLSchema-instance
への従来のバインディングを宣言しています。次の属性のうち:
xsi:type
は、XMLインスタンスがXSDを介さずに要素タイプ情報を直接関連付けることを許可します。 XSDでxsi:typeを使用してXML要素の値を制限する方法 を参照してください。
あなたの例では、xsi:type
は使用されていません。 xsi
に関する完全性のためにここに含まれています。
xsi:nil
は、XSDで許可されていない場合に空の要素が有効であると見なされるようにします。
あなたの例では、xsi:nil
は使用されていません。 xsi
に関する完全性のためにここに含まれています。
xsi:schemaLocation
およびxsi:noNamespaceSchemaLocation
XSDをXMLドキュメントに関連付ける方法に関するヒントをXMLプロセッサに提供します。名前空間がある場合はxsi:schemaLocation
を使用します。名前空間がない場合は、xsi:noNamespaceSchemaLocation
を使用します。
あなたの例では、名前空間があるので、xsi:schemaLocation
を適切に使用します。その値はスペースで区切られていますpairsofnamespaceand- XSD-location-URI。あなたの例では、名前空間http://maven.Apache.org/POM/4.0.0
を使用し、名前空間は取得不可。この例では、XSD-location-URI http://maven.Apache.org/xsd/maven-4.0.0.xsd
も使用しています。
例で名前空間を使用しなかった場合、xsi:noNamespaceSchemaLocation
を使用します。この値は単一XSD-location-URI目的のXSDの場所を示すヒントであり、取得可能なはずです。
targetNamespace
は、ネームスペースを指定するXSDのxs:schema
ルート要素の属性ですXSDが管理することを意図しているXMLドキュメントインスタンスのルート要素。これらのXMLドキュメントのルート要素のデフォルトまたは明示的なネームスペースと一致する必要があります。
xmlns
は、デフォルトの名前空間を定義します。これは、プロジェクトノード内の名前空間エイリアスのないすべてのノードが、デフォルトでhttp://maven.Apache.org/POM/4.0.0
名前空間にあることを示します。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
は名前空間-http://www.w3.org/2001/XMLSchema-instance
を定義し、新しいエイリアスを与えます-xsi
xsi:schemaLocation
は、"http://www.w3.org/2001/XMLSchema-instance"
名前空間の属性schemaLocation
です。値のペア-名前空間URIとその名前空間のxsd-schemaファイルのスキーマロケーションリンクが含まれます。定義された名前空間URIごとに1つのxsdファイル-値のペアを多数含むことができます。つまり、リンクhttp://maven.Apache.org/xsd/maven-4.0.0.xsd
には、http://maven.Apache.org/POM/4.0.0
名前空間の定義を持つxsdスキーマが含まれます。