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呼び出した後に有効になります

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

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

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

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

深さ

ノード

名前

1

Text

A 123

EntityHandlingExpandCharEntites設定し、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>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からXmlValidatingReader.EntityHandling プロパティを検索した結果を表示しています。
Weblioに収録されているすべての辞書からXmlValidatingReader.EntityHandling プロパティを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からXmlValidatingReader.EntityHandling プロパティ を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

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

   

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



XmlValidatingReader.EntityHandling プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS