XmlValidatingReader.XmlResolver XmlValidatingReader.XmlResolver XmlValidatingReader.XmlResolver XmlValidatingReader.XmlResolver Property

定義

外部ドキュメント型定義 (DTD) およびスキーマ位置参照を解決するために使用する XmlResolver を設定します。Sets the XmlResolver used for resolving external document type definition (DTD) and schema location references. XmlResolver は、XML スキーマ定義言語 (XSD) スキーマで見つかったインポート要素またはインクルード要素を処理するためにも使用されます。The XmlResolver is also used to handle any import or include elements found in XML Schema definition language (XSD) schemas.

public:
 property System::Xml::XmlResolver ^ XmlResolver {  void set(System::Xml::XmlResolver ^ value); };
public System.Xml.XmlResolver XmlResolver { set; }
member this.XmlResolver : System.Xml.XmlResolver
Public Property XmlResolver As XmlResolver

プロパティ値

使用する XmlResolverThe XmlResolver to use. null に設定されていると、外部リソースが解決されません。If set to null, external resources are not resolved.

.NET Framework.NET Framework バージョン 1.1 の場合、XmlResolver を指定するには呼び出し元が完全に信頼されている必要があります。In version 1.1 of the .NET Framework.NET Framework, the caller must be fully trusted to specify an XmlResolver.

次の例では、XmlResolverプロパティをネットワークに接続された DTD ファイルへのアクセスに必要な資格情報を指定します。The following example uses the XmlResolver property to specify the credentials necessary to access the networked DTD file.

   // Create the reader. -> 
   XmlTextReader^ txtreader = gcnew XmlTextReader( "book5.xml" );
   XmlValidatingReader^ reader = gcnew XmlValidatingReader( txtreader );
   txtreader->WhitespaceHandling = WhitespaceHandling::None;
   
   // Set the credentials necessary to access the DTD file stored on the network.
   XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
   resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
   reader->XmlResolver = resolver;
   
   // Display each of the element nodes.
   while ( reader->Read() )
   {
      switch ( reader->NodeType )
      {
         case XmlNodeType::Element:
            Console::Write( "< {0}>", reader->Name );
            break;

         case XmlNodeType::Text:
            Console::Write( reader->Value );
            break;

         case XmlNodeType::DocumentType:
            Console::Write( "<!DOCTYPE {0} [ {1}]", reader->Name, reader->Value );
            break;

         case XmlNodeType::EntityReference:
            Console::Write( reader->Name );
            break;

         case XmlNodeType::EndElement:
            Console::Write( "</ {0}>", reader->Name );
            break;
      }
   }

   
   // Close the reader.
   reader->Close();
}

// Create the reader.
XmlTextReader txtreader = new XmlTextReader("book5.xml");
XmlValidatingReader reader = new XmlValidatingReader(txtreader);
txtreader.WhitespaceHandling = WhitespaceHandling.None;

// Set the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
reader.XmlResolver = resolver;

// Display each of the element nodes.
while (reader.Read()){
   switch (reader.NodeType){
     case XmlNodeType.Element:
       Console.Write("<{0}>", reader.Name);
       break;
     case XmlNodeType.Text:
       Console.Write(reader.Value);
       break;
     case XmlNodeType.DocumentType:
       Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
       break;
     case XmlNodeType.EntityReference:
       Console.Write(reader.Name);
       break;
     case XmlNodeType.EndElement:
       Console.Write("</{0}>", reader.Name);
       break;
  }        
}           
' Create the reader.
Dim txtreader as XmlTextReader = new XmlTextReader("book5.xml")
Dim reader as XmlValidatingReader = new XmlValidatingReader(txtreader)
txtreader.WhitespaceHandling = WhitespaceHandling.None

' Set the credentials necessary to access the DTD file stored on the network.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
reader.XmlResolver = resolver

' Display each of the element nodes.
while (reader.Read())
   select case reader.NodeType
     case XmlNodeType.Element:
       Console.Write("<{0}>", reader.Name)
     case XmlNodeType.Text:
       Console.Write(reader.Value)
     case XmlNodeType.DocumentType:
       Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value)
     case XmlNodeType.EntityReference:
       Console.Write(reader.Name)
     case XmlNodeType.EndElement:
       Console.Write("</{0}>", reader.Name)
   end select        
end while           

例では、入力として、次のファイルを使用します。The example uses the following files as input.

book5.xml

<!DOCTYPE book SYSTEM 'http://myServer/DTDs/books.dtd'>
<book ISBN = '1-861001-57-5'>
  <title>Pride And Prejudice</title>
  <price>19.95</price>
  <misc>&h;</misc>
</book>

books.dtd

<!ELEMENT book (title,price,misc)> 
<!ATTLIST book 
   genre CDATA "novel"
   ISBN CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT misc (#PCDATA)>
<!ENTITY h "hardcover">
<!ENTITY p "paperback">

注釈

注意

XmlValidatingReaderクラスは廃止されました.NET Framework 2.0.NET Framework 2.0します。The XmlValidatingReader class is obsolete in .NET Framework 2.0.NET Framework 2.0. 検証型を作成するXmlReaderインスタンスを使用して、XmlReaderSettingsクラスおよびCreateメソッド。You can create a validating XmlReader instance by using the XmlReaderSettings class and the Create method. 詳細については、XmlReader のリファレンス ページの「解説」を参照してください。For more information, see the Remarks section of the XmlReader reference page.

XmlResolver Dtd、エンティティ、または検証プロセスを完了するために必要なスキーマを読み込むために使用します。The XmlResolver is used to load any DTDs, entities, or schemas needed to complete the validation process.

このプロパティは、いつでもでも設定でき、、次に影響を与えるRead呼び出します。This property can be set at any time and takes affect after the next Read call. このプロパティ設定されている場合nullリーダーは、外部参照を解決するのには、ユーザーは必要ない前提としています。If this property is set to null, the reader assumes the user is not interested in resolving external references. この場合、リーダーは、リソースが存在する場合、内部リソースに対してのみ検証します。In this case, the reader only validates against internal resources, if the resource is present.

バージョン 1.1 で.NET Framework.NET Framework、このプロパティが設定されていない場合、アプリケーションの信頼レベルが既定の動作を決定します。In version 1.1 of .NET Framework.NET Framework , if this property is not set, the trust level of the application determines the default behavior.

Fully trusted code: リーダーは、既定値を使用してXmlUrlResolverをユーザーの資格情報なし。Fully trusted code: The reader uses a default XmlUrlResolver with no user credentials. ネットワーク リソースへのアクセスを認証が必要な場合は、使用、XmlResolverプロパティを指定する、XmlResolverのために必要な資格情報を使用します。If authentication is required to access a network resource, use the XmlResolver property to specify an XmlResolver with the necessary credentials.

Semi-trusted code: XmlResolverプロパティに設定されてnullします。Semi-trusted code: The XmlResolver property is set to null. 外部リソースは解決されません。External resources are not resolved.

検証スキーマを使用して、するときに提供することで、高価な読み込み処理を回避できます、XmlSchemaCollectionを使用して、Schemasプロパティ。When validating using schemas, you can avoid the expensive load process by providing an XmlSchemaCollection using the Schemas property.

適用対象

こちらもご覧ください