XmlValidatingReader.EntityHandling プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > XmlValidatingReader.EntityHandling プロパティの意味・解説 

XmlValidatingReader.EntityHandling プロパティ

リーダーによるエンティティの処理方法を指定する値を取得または設定します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public Property EntityHandling As
 EntityHandling
Dim instance As XmlValidatingReader
Dim value As EntityHandling

value = instance.EntityHandling

instance.EntityHandling = value
public EntityHandling EntityHandling { get;
 set; }
public:
property EntityHandling EntityHandling {
    EntityHandling get ();
    void set (EntityHandling value);
}
/** @property */
public EntityHandling get_EntityHandling ()

/** @property */
public void set_EntityHandling (EntityHandling
 value)
public function get EntityHandling
 () : EntityHandling

public function set EntityHandling
 (value : EntityHandling)

プロパティ値
EntityHandling 値の 1 つ。EntityHandling が指定されていない場合は、既定で EntityHandling.ExpandEntities が使用されます。

例外例外
例外の種類条件

ArgumentOutOfRangeException

無効な値が指定されました。

解説解説

このプロパティは変更することもでき、変更は次に Read を呼び出した後に有効になります。

EntityHandling を ExpandCharEntities に設定すると、属性値の一部だけが正規化されます。リーダーは、隣接するエンティティ参照ノードの内容とは関係なく、個別のテキスト ノードを正規化します。

エンティティ処理モード間の違いを次の XML に示します。

 <!DOCTYPE doc [<!ENTITY num "123">]>
  <doc> &#65; &num; </doc>

EntityHandling を ExpandEntities に設定すると、"doc" 要素ノードに、展開したエンティティ テキストを持つ 1 つのテキスト ノードが含まれます。

深さ

ノード型

名前

値

1

Text

A 123

EntityHandling を ExpandCharEntites に設定し、WhitespaceHandling を Significant または All に設定すると、"doc" 要素は、文字エンティティを展開し、一般エンティティをノードとして返します。

深さ

ノード型

名前

値

1

Text

A

1

EntityReference

num

1

SignificantWhitespace

使用例使用例

ResolveEntity メソッドを使用して、一般エンティティを展開する例を次に示します。

Option Strict
Option Explicit

Imports System
Imports System.IO
Imports System.Xml

Public Class Sample
   
   Public Shared Sub Main()
      Dim reader As XmlValidatingReader = Nothing
      Dim txtreader As XmlTextReader = Nothing
      
      Try
         'Create and load the XmlTextReader with the XML file. 
         txtreader = New XmlTextReader("book1.xml")
         txtreader.WhitespaceHandling = WhitespaceHandling.None
         
         'Create the XmlValidatingReader over the XmlTextReader.
         'Set the reader to not expand general entities.
         reader = New XmlValidatingReader(txtreader)
         reader.ValidationType = ValidationType.None
         reader.EntityHandling = EntityHandling.ExpandCharEntities
         
         reader.MoveToContent() 'Move to the root element.
         reader.Read() 'Move to title start tag.
         reader.Skip() 'Skip the title element.
         'Read the misc start tag.  The reader is now positioned on
         'the entity reference node.
         reader.ReadStartElement()
         
         'Because EntityHandling is set to ExpandCharEntities, you must
 call 
         'ResolveEntity to expand the entity.  The entity replacement
 text is 
         'then parsed and returned as a child node.  
         Console.WriteLine("Expand the entity...")
         reader.ResolveEntity()
         
         Console.WriteLine("The entity replacement text is returned
 as a text node.")
         reader.Read()
         Console.WriteLine("NodeType: {0} Value: {1}",
 reader.NodeType, reader.Value)
         
         Console.WriteLine("An EndEntity node closes the entity
 reference scope.")
         reader.Read()
         Console.WriteLine("NodeType: {0} Name: {1}",
 reader.NodeType, reader.Name)
      
      Finally
         If Not (reader Is
 Nothing) Then
            reader.Close()
         End If
      End Try
   End Sub 'Main
using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
     XmlValidatingReader reader = null;
     XmlTextReader txtreader = null;

     try
     {
       //Create and load the XmlTextReader with the XML file. 
       txtreader = new XmlTextReader("book1.xml");
       txtreader.WhitespaceHandling = WhitespaceHandling.None;

       //Create the XmlValidatingReader over the XmlTextReader.
       //Set the reader to not expand general entities.
       reader = new XmlValidatingReader(txtreader);
       reader.ValidationType = ValidationType.None;
       reader.EntityHandling = EntityHandling.ExpandCharEntities;

       reader.MoveToContent();  //Move to the root element.
       reader.Read();  //Move to title start tag.
       reader.Skip();  //Skip the title element.
      
       //Read the misc start tag.  The reader is now positioned on
       //the entity reference node.
       reader.ReadStartElement(); 

       //Because EntityHandling is set to ExpandCharEntities, you must
 call 
       //ResolveEntity to expand the entity.  The entity replacement
 text is 
       //then parsed and returned as a child node.         
       Console.WriteLine("Expand the entity...");
       reader.ResolveEntity();  

       Console.WriteLine("The entity replacement text is returned as a text
 node.");
       reader.Read();  
       Console.WriteLine("NodeType: {0} Value: {1}", reader.NodeType ,reader.Value);

       Console.WriteLine("An EndEntity node closes the entity reference scope.");
       reader.Read();
       Console.WriteLine("NodeType: {0} Name: {1}", reader.NodeType,reader.Name);
     
    }
    finally
    {
       if (reader != null)
         reader.Close();
    }
  }
}
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   XmlValidatingReader^ reader = nullptr;
   XmlTextReader^ txtreader = nullptr;
   try
   {
      
      //Create and load the XmlTextReader with the XML file. 
      txtreader = gcnew XmlTextReader( "book1.xml" );
      txtreader->WhitespaceHandling = WhitespaceHandling::None;
      
      //Create the XmlValidatingReader over the XmlTextReader.
      //Set the reader to not expand general entities.
      reader = gcnew XmlValidatingReader( txtreader );
      reader->ValidationType = ValidationType::None;
      reader->EntityHandling = EntityHandling::ExpandCharEntities;
      reader->MoveToContent(); //Move to the root element.
      reader->Read(); //Move to title start tag.
      reader->Skip(); //Skip the title element.
      
      //Read the misc start tag.  The reader is now positioned on
      //the entity reference node.
      reader->ReadStartElement();
      
      //Because EntityHandling is set to ExpandCharEntities, you must
 call 
      //ResolveEntity to expand the entity.  The entity replacement
 text is 
      //then parsed and returned as a child node.         
      Console::WriteLine( "Expand the entity..." );
      reader->ResolveEntity();
      Console::WriteLine( "The entity replacement text is returned as a text
 node." );
      reader->Read();
      Console::WriteLine( "NodeType: {0} Value: {1}", reader->NodeType,
 reader->Value );
      Console::WriteLine( "An EndEntity node closes the entity reference scope."
 );
      reader->Read();
      Console::WriteLine( "NodeType: {0} Name: {1}", reader->NodeType,
 reader->Name );
   }
   finally
   {
      if ( reader != nullptr )
            reader->Close();
   }

}

import System.*;
import System.IO.*;
import System.Xml.*;

public class Sample
{
    public static void main(String[]
 args)
    {
        XmlValidatingReader reader = null;
        XmlTextReader txtReader = null;
        try {
            //Create and load the XmlTextReader with the XML file. 
            txtReader = new XmlTextReader("book1.xml");
            txtReader.set_WhitespaceHandling(WhitespaceHandling.None);

            //Create the XmlValidatingReader over the XmlTextReader.
            //Set the reader to not expand general entities.
            reader = new XmlValidatingReader(txtReader);
            reader.set_ValidationType(ValidationType.None);
            reader.set_EntityHandling(EntityHandling.ExpandCharEntities);

            reader.MoveToContent(); //Move to the root element.
            reader.Read(); //Move to title start tag.
            reader.Skip(); //Skip the title element.

            //Read the misc start tag.  The reader is now positioned
 on
            //the entity reference node.
            reader.ReadStartElement();

            //Because EntityHandling is set to ExpandCharEntities, you
  
            //must call ResolveEntity to expand the entity.  The entity
  
            //replacement text is then parsed and returned as a child
 node.         
            Console.WriteLine("Expand the entity...");
            reader.ResolveEntity();
            Console.WriteLine("The entity replacement text is " 
                + "returned as a text node.");
            reader.Read();
            Console.WriteLine("NodeType: {0} Value: {1}",
                reader.get_NodeType(), reader.get_Value());
            Console.WriteLine("An EndEntity node closes the entity " 
                + " reference scope.");
            reader.Read();
            Console.WriteLine("NodeType: {0} Name: {1}", reader.get_NodeType()
,
                reader.get_Name());
        } 
        finally {
            if (reader != null) {
                reader.Close();
            }
        }
    } //main
} //Sample

この例では、入力として、book1.xml というファイルを使用しています。

<?xml version='1.0' ?>
<!DOCTYPE book [<!ENTITY
 h 'hardcover'>]>
<book>
  <title>Pride And
 Prejudice</title>
  <misc>&h;</misc>
</book>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

XmlValidatingReader.EntityHandling プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlValidatingReader.EntityHandling プロパティのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS