2009-04-15 26 views
1

スキーマファイル(.xsd)に準拠する入力XMLファイルを検証するXML検証を行います。私の質問は、ターゲット名前空間パラメータをいつ指定する必要があり、ターゲット名前空間パラメータの機能は何ですか?私は、次のMSDNページからこの質問を得た スキーマのターゲット名前空間

http://msdn.microsoft.com/en-us/library/1hh8b082.aspx

http://msdn.microsoft.com/en-us/library/system.xml.schema.xmlschemaset.aspx

は具体的には、私は XmlSchemaSetクラスの Add方法の第一のパラメータを参照しています。

EDIT1:私の現在の混乱は、XMLスキーマファイルで

  1. あり、そこに上部のターゲット名前空間属性があり、このXMLスキーマファイルで定義されたすべての要素をターゲット名前空間で定義されています。
  2. スキームと照合するXML文書ファイルでは、XML文書はXMLスキーマファイルの「ターゲット名前空間」で定義された要素を使用することがあります。また、その中で定義されている「ターゲット名前空間」以外の名前空間XMLスキーマファイル。
  3. 質問クラスのAddメソッドに「ターゲット名前空間」を追加するか、Addメソッドに使用するすべての名前空間をXmlSchemaSetクラスに追加するだけですか?
  4. もう1つの質問は、XMLスキーマファイルに複数の「ターゲット名前空間」を定義できるかどうかです。はいの場合、どうですか?

答えて

2

XMLドキュメントで名前空間を使用している場合は、このパラメータを使用する必要があります。あなたのタグのうちのいくつかが<xx:TagName>の形式である場合。それ以外の場合は、空の文字列""を渡すことができます。

+0

答えに追加するには、XmlSchemaSetでXmlSchemaで定義された名前空間を使用する場合は、Null/NothingをtargetNamespaceとして渡す必要があります。これにより、Addメソッドで名前空間を明示的に渡すことを省くことができます。 +1 – Cerebrus

+0

@dommer、 "ドキュメント内の名前空間を使用する"とは、XMLドキュメントまたはスキーマドキュメントの名前空間を使用することを意味しますか? – George2

+0

@Cerebrus、 "XmlSchemaで定義されている名前空間を使用する"、XML Schameファイルなどで定義されている名前空間を意味しますか? books.xmlとbooks.xsdのサンプルについて、ここのサンプルでポイントを説明できますか? http://msdn.microsoft.com/en-us/library/system.xml.schema.xmlschemaset.aspxe – George2