LoadOptions LoadOptions LoadOptions LoadOptions Enum

定義

XML を解析するときに読み込みオプションを指定します。Specifies load options when parsing XML.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class LoadOptions
[System.Flags]
public enum LoadOptions
type LoadOptions = 
Public Enum LoadOptions
継承
属性

フィールド

None None None None 0

意味のない空白を保持したり、ベース URI と行情報を読み込んだりしないでください。Does not preserve insignificant white space or load base URI and line information.

PreserveWhitespace PreserveWhitespace PreserveWhitespace PreserveWhitespace 1

解析の際に意味のない空白が保存されます。Preserves insignificant white space while parsing.

SetBaseUri SetBaseUri SetBaseUri SetBaseUri 2

XmlReader からベース URI 情報を要求し、BaseUri プロパティを介して使用できるようにします。Requests the base URI information from the XmlReader, and makes it available via the BaseUri property.

SetLineInfo SetLineInfo SetLineInfo SetLineInfo 4

XmlReader から行情報を要求し、XObject 上のプロパティを介して使用できるようにします。Requests the line information from the XmlReader and makes it available via properties on XObject.

この例では、ファイルから小さな XML ツリーを読み込み、ベース URI を設定し、行情報を保持するオプションを設定します。This example loads a small XML tree from a file, setting the options to set base URI and retain line information. 次に、行情報を持たない別の要素を追加します。It then adds another element that does not have line information. 次に、ツリー内の各要素の行情報を出力します。It then prints the line information for each element in the tree.

string markup = @"<Root>  
    <Child1 />  
    <Child2 />  
    <Child4 />  
</Root>";  

File.WriteAllText("Test.xml", markup);  

XElement po = XElement.Load("Test.xml",  
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);  

// add a node to the tree.  
// the newly added node will not have line information.  
po.Element("Child2").AddAfterSelf(new XElement("Child3"));  

string[] splitUri = po.BaseUri.Split('/');  
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);  
Console.WriteLine();  
Console.WriteLine("{0}{1}{2}",  
    "Element Name".PadRight(20),  
    "Line".PadRight(5),  
    "Position");  
Console.WriteLine("{0}{1}{2}",  
    "------------".PadRight(20),  
    "----".PadRight(5),  
    "--------");  
foreach (XElement e in po.DescendantsAndSelf())  
    Console.WriteLine("{0}{1}{2}",  
        ("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),  
        ((IXmlLineInfo)e).HasLineInfo() ?  
            ((IXmlLineInfo)e).LineNumber.ToString().PadRight(5) :  
            "",  
        ((IXmlLineInfo)e).HasLineInfo() ?  
            ((IXmlLineInfo)e).LinePosition.ToString() :  
            "No Line Information");  
Dim markup As String = _  
    "<Root>" + Environment.NewLine & _  
    "    <Child1 />" + Environment.NewLine & _  
    "    <Child2 />" + Environment.NewLine & _  
    "    <Child4 />" + Environment.NewLine & _  
    "</Root>"  

File.WriteAllText("Test.xml", markup)  

Dim po As XElement = XElement.Load("Test.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)  

' add a node to the tree.  
' the newly added node will not have line information.  
po.Element("Child2").AddAfterSelf(New XElement("Child3"))  

Dim splitUri() As String = po.BaseUri.Split("/"c)  
Console.WriteLine("BaseUri: {0}", splitUri(splitUri.Length - 1))  
Console.WriteLine()  
Console.WriteLine("{0}{1}{2}", _  
    "Element Name".PadRight(20), _  
    "Line".PadRight(5), _  
    "Position")  
Console.WriteLine("{0}{1}{2}", _  
    "------------".PadRight(20), _  
    "----".PadRight(5), _  
    "--------")  
For Each e As XElement In po.DescendantsAndSelf()  
    Console.WriteLine("{0}{1}{2}", _  
        ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _  
        IIf(DirectCast(e, IXmlLineInfo).HasLineInfo(), _  
            DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _  
            ""), _  
        IIf(DirectCast(e, IXmlLineInfo).HasLineInfo(), _  
            DirectCast(e, IXmlLineInfo).LinePosition.ToString(), _  
            "No Line Information"))  
Next  

この例を実行すると、次の出力が生成されます。This example produces the following output:

BaseUri: Test.xml  

Element Name        Line Position  
------------        ---- --------  
Root                1    2  
  Child1            2    6  
  Child2            3    6  
  Child3            No Line Information  
  Child4            4    6  

注釈

読み込み時に空白を保持すると、XML ツリー内の意味のない空白はすべて、そのまま XML ツリーに具体化されます。If you preserve white space when loading, all insignificant white space in the XML tree is materialized in the XML tree as is. 空白を保持しない場合、意味のない空白はすべて破棄されます。If you do not preserve white space, then all insignificant white space is discarded.

SetBaseUri フラグと SetLineInfo フラグを設定すると、パフォーマンスが低下します。There is a performance penalty if you set the SetBaseUri and the SetLineInfo flags.

ベース URI と行情報は、XML ドキュメントを読み込んだ直後に正確になります。The base URI and the line information are accurate immediately after loading the XML document. ドキュメントの読み込み後に XML ツリーを変更すると、ベース URI と行情報が無意味になることがあります。If you modify the XML tree after loading the document, the base URI and line information may become meaningless.

基になるXmlReaderにベース URI または行情報がない場合は、setbaseuri フラグと setlineinfo フラグを設定しても効果はありません。If the underlying XmlReader does not have base URI or line information, setting the SetBaseUri and the SetLineInfo flags will have no effect.

この型を使用すると、読み込み時または解析時に LINQ to XML が空白を処理する方法を制御できます。This type allows you to control how LINQ to XML handles white space when loading or parsing. 詳細については、「 XML の読み込み時または解析時の空白の保持」と「シリアル化時の空白の維持」を参照してください。For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

適用対象

こちらもご覧ください