2010-11-29 6 views
3

行内のURI(5,6,7)は実際に何かを指し示す必要がありますか?名前空間の後に実際に使用されるURIは何ですか?

私がduff urlsを指すとき、それでも私のXMLを検証するように見えるので、何がポイントですか?

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema id="UploadXSD" 
    targetNamespace="UploadXSD" 
    elementFormDefault="qualified" 
    xmlns="http://tempuri.org/UploadXSD.xsd" 
    xmlns:mstns="http://tempuri.org/UploadXSD.xsd" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="Video"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Title" minOccurs="1" type="xs:string"></xs:element> 
     <xs:element name="Description" minOccurs="1" type="xs:string"></xs:element> 
     <xs:element name="Contributor" minOccurs="1" type="xs:string"></xs:element> 
     <xs:element name="Subject" minOccurs="1" type="xs:string"></xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

</xs:schema> 

答えて

5

URNを名前空間として使用する点は、それらが一意であることです。たとえば、GUIDを使用することもできますが、この方法では読みやすくなります。

もちろん、URNを使用すると、の可能性があります。は、xsdファイルのような実際のリソースを指し示す可能性がありますが、それは追加ボーナスであり、必要ありません。

"tempuri"は、名前空間の衝突を避けるために、実際のURNで置き換える必要のあるデフォルト名( "temp" + "uri")です。

XMLSchema名前空間は、XMLスキーマに関する情報を含むWebサイトを実際に指しています。

XML文書とスキーマをregurlarlyで使用する場合は、少なくともprimerを読んで、XMLスキーマの可能性について考えてください。 XML名前空間に関する詳細はhereです。

+0

を助け、これは*への答えは「そうポイントは何ですか?」される*この特定のXML文書のための質問:xs'接頭辞 'にバインドされた名前空間URI名前に 'xs'という接頭辞が付いた要素はすべてXML Schemaの語彙に属すると宣言します。他の接頭辞付きの名前空間宣言は、一般に、 'xs:import'と組み合わされたユーザ定義データ型(例として' xs:string')では使用されません。最後に、私はデフォルトの名前空間宣言が間違って使われていると思います。接頭辞のない要素の名前を特定の名前空間URIにバインドするには、 'targetNamespace'属性を使用します。 –

4

XML名前空間URI(URLではない)は単なる不透明な文字列です。これらは、XML構造における衝突を防ぐためのものです。他のネームスペースを使用できる言語と同様に、何も指していませんが、コンテンツを使用するための一意の名前を定義します。

DNS登録を使用してグローバルに一意であることを覚えておくと、公開するスキーマでこれらの名前を使用するのが一般的です。しかし、それは必要ではなく、GUIDは機能します(URI仕様に準拠するためには、スキームプレフィックスが必要です)。ご質問にお答えするために

いいえ、URIのは、何を(彼らはIDがある)ポイントする必要はありません。

名前空間のURIを変更すると、名前空間名が変更されます。

希望これは、@TToni良い答えに加えて

関連する問題