다음을 통해 공유


XmlDataDocument.Load 메서드

정의

지정된 데이터 원본을 사용하여 XmlDataDocument를 로드하고, DataSet을 로드된 데이터와 동기화합니다.

오버로드

Load(Stream)

지정된 스트림에서 XmlDataDocument를 로드합니다.

Load(TextReader)

지정된 TextReader에서 XmlDataDocument를 로드합니다.

Load(String)

지정된 URL을 사용하여 XmlDataDocument를 로드합니다.

Load(XmlReader)

지정된 XmlReader에서 XmlDataDocument를 로드합니다.

설명

참고

XML 데이터를 관계형으로 보려면 먼저 데이터 매핑에 사용할 스키마를 지정해야 합니다. 이 작업은 메서드를 ReadXmlSchema 호출하거나 수동으로 테이블과 열을 만들어 수행할 수 있습니다 DataSet . 이 단계는 호출 Load하기 전에 수행해야 합니다.

XmlDataDocument 는 엔터티 참조 만들기를 지원하지 않습니다. 데이터에 엔터티 참조가 포함된 경우 메서드는 Load 엔터티 참조를 확인하고 확장합니다. 그러나 인수로 사용되는 오버로드를 사용하는 Load 경우 엔터티를 XmlReader 확인할 수 있는 오버로드를 XmlReader 지정해야 합니다.

Load(Stream)

지정된 스트림에서 XmlDataDocument를 로드합니다.

public:
 override void Load(System::IO::Stream ^ inStream);
public override void Load (System.IO.Stream inStream);
override this.Load : System.IO.Stream -> unit
Public Overrides Sub Load (inStream As Stream)

매개 변수

inStream
Stream

로드할 XML 문서가 포함된 스트림입니다.

설명

XmlDataDocument 는 엔터티 참조 만들기를 지원하지 않습니다. 데이터에 엔터티 참조가 포함된 경우 메서드는 Load 엔터티 참조를 확인하고 확장합니다.

참고

XML 데이터를 관계형으로 보려면 먼저 데이터 매핑에 사용할 스키마를 지정해야 합니다. 이 작업은 메서드를 ReadXmlSchema 호출하거나 수동으로 테이블과 열을 만들어 수행할 수 있습니다 DataSet . 이 단계는 호출 Load하기 전에 수행해야 합니다.

적용 대상

Load(TextReader)

지정된 TextReader에서 XmlDataDocument를 로드합니다.

public:
 override void Load(System::IO::TextReader ^ txtReader);
public override void Load (System.IO.TextReader txtReader);
override this.Load : System.IO.TextReader -> unit
Public Overrides Sub Load (txtReader As TextReader)

매개 변수

txtReader
TextReader

XML 데이터를 문서에 제공하기 위해 사용하는 TextReader입니다.

설명

XmlDataDocument 는 엔터티 참조 만들기를 지원하지 않습니다. 데이터에 엔터티 참조가 포함된 경우 메서드는 Load 엔터티 참조를 확인하고 확장합니다.

참고

XML 데이터를 관계형으로 보려면 먼저 데이터 매핑에 사용할 스키마를 지정해야 합니다. 이 작업은 메서드를 ReadXmlSchema 호출하거나 수동으로 테이블 및 열을 만들어 수행할 수 있습니다 DataSet . 이 단계는 호출 Load하기 전에 수행해야 합니다.

적용 대상

Load(String)

지정된 URL을 사용하여 XmlDataDocument를 로드합니다.

public:
 override void Load(System::String ^ filename);
public override void Load (string filename);
override this.Load : string -> unit
Public Overrides Sub Load (filename As String)

매개 변수

filename
String

로드할 XML 문서가 포함된 파일의 URL입니다.

설명

XmlDataDocument 는 엔터티 참조 만들기를 지원하지 않습니다. 데이터에 엔터티 참조가 포함된 경우 메서드는 Load 엔터티 참조를 확인하고 확장합니다.

참고

XML 데이터를 관계형으로 보려면 먼저 데이터 매핑에 사용할 스키마를 지정해야 합니다. 이 작업은 메서드를 ReadXmlSchema 호출하거나 수동으로 테이블 및 열을 만들어 수행할 수 있습니다 DataSet . 이 단계는 호출 Load하기 전에 수행해야 합니다.

적용 대상

Load(XmlReader)

지정된 XmlReader에서 XmlDataDocument를 로드합니다.

public:
 override void Load(System::Xml::XmlReader ^ reader);
public override void Load (System.Xml.XmlReader reader);
override this.Load : System.Xml.XmlReader -> unit
Public Overrides Sub Load (reader As XmlReader)

매개 변수

reader
XmlReader

로드할 XML 문서가 포함된 XmlReader입니다.

예외

로드되는 XML에 엔터티 참조가 포함되어 있으나 판독기에서 엔터티를 확인할 수 없습니다.

예제

다음 예제에서는 메서드를 사용하여 책의 가격을 수정합니다 DataSet .

#using <System.dll>
#using <System.Data.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Data;
using namespace System::Xml;
int main()
{
   // Create an XmlDataDocument.
   XmlDataDocument^ doc = gcnew XmlDataDocument;

   // Load the schema file.
   doc->DataSet->ReadXmlSchema( "store.xsd" );

   // Load the XML data.
   XmlTextReader^ reader = gcnew XmlTextReader( "2books.xml" );
   reader->MoveToContent(); // Moves the reader to the root node.
   doc->Load( reader );

   // Update the price on the first book using the DataSet methods.
   DataTable^ books = doc->DataSet->Tables["book"];
   books->Rows[0]["price"] = "12.95";
   Console::WriteLine( "Display the modified XML data..." );
   doc->Save( Console::Out );
}
using System;
using System.Data;
using System.Xml;
public class Sample {
    public static void Main() {
        // Create an XmlDataDocument.
        XmlDataDocument doc = new XmlDataDocument();

        // Load the schema file.
        doc.DataSet.ReadXmlSchema("store.xsd");

        // Load the XML data.
        XmlTextReader reader = new XmlTextReader("2books.xml");
        reader.MoveToContent(); // Moves the reader to the root node.
        doc.Load(reader);

        // Update the price on the first book using the DataSet methods.
        DataTable books = doc.DataSet.Tables["book"];
        books.Rows[0]["price"] = "12.95";

        Console.WriteLine("Display the modified XML data...");
        doc.Save(Console.Out);
    }
} // End class
Imports System.Data
Imports System.Xml

public class Sample

  public shared sub Main()

      'Create an XmlDataDocument.
      Dim doc as XmlDataDocument = new XmlDataDocument()

      'Load the schema.
      doc.DataSet.ReadXmlSchema("store.xsd") 
 
      'Load the XML data.
      Dim reader as XmlTextReader = new XmlTextReader("2books.xml")
      reader.MoveToContent() 'Moves the reader to the root node.
      doc.Load(reader)
        
     'Change the price on the first book imports the DataSet methods.
     Dim books as DataTable = doc.DataSet.Tables.Item("book")
     books.Rows.Item(0).Item("price") = "12.95"
        
     Console.WriteLine("Display the modified XML data...")
     doc.Save(Console.Out)

  end sub
end class

이 예제에서는 다음 두 개의 입력 파일을 사용합니다.

2books.xml

<!--sample XML fragment-->
<bookstore>
  <book genre='novel' ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <book genre='novel' ISBN='1-861001-57-5'>
    <title>Pride And Prejudice</title>
    <price>24.95</price>
  </book>
</bookstore>

store.xsd

<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">

 <xsd:element name="bookstore" type="bookstoreType"/>

 <xsd:complexType name="bookstoreType">
  <xsd:sequence maxOccurs="unbounded">
   <xsd:element name="book"  type="bookType"/>
  </xsd:sequence>
 </xsd:complexType>

 <xsd:complexType name="bookType">
  <xsd:sequence>
   <xsd:element name="title" type="xsd:string"/>
   <xsd:element name="author" type="authorName"/>
   <xsd:element name="price"  type="xsd:decimal"/>
  </xsd:sequence>
  <xsd:attribute name="genre" type="xsd:string"/>
 </xsd:complexType>

 <xsd:complexType name="authorName">
  <xsd:sequence>
   <xsd:element name="first-name"  type="xsd:string"/>
   <xsd:element name="last-name" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>

</xsd:schema>

설명

XmlDataDocument 는 엔터티 참조 만들기를 지원하지 않습니다. 데이터 원본에 엔터티 참조가 포함된 경우 EntityHandling.ExpandEntities(기본 동작)로 설정된 속성을 만들고 XmlValidatingReader EntityHandling 메서드에 Load 전달 XmlValidatingReader 해야 합니다. 사용하지 XmlValidatingReader않으면 메서드가 Load 예외를 throw합니다.

메서드는 Load 항상 상당한 공백을 유지합니다. 이 속성은 PreserveWhitespace 공백이 보존되는지 여부를 결정합니다. 기본값은 false공백이 유지되지 않는다는 것입니다.

판독기 초기 상태(즉, ReadState=ReadState.Initial) Load 인 경우 판독기의 전체 콘텐츠를 사용하고 찾은 내용에서 DOM을 빌드합니다.

판독기 깊이가 "n"인 일부 노드에 이미 배치된 경우 이 메서드는 해당 노드와 모든 후속 형제를 깊이 "n"을 닫는 끝 태그까지 로드합니다. 다음과 같은 결과가 표시됩니다.

현재 노드와 다음 형제가 다음과 유사한 경우:

<!--comment--><element1>one</element1><element2>two</element2>  

Load 는 문서에 루트 수준 요소가 두 개 있을 수 없으므로 예외를 throw합니다. 현재 노드와 다음 형제가 다음과 유사한 경우:

<!--comment--><?process  
    instruction?><!--comment--></endtag>  

Load 성공합니다. 그러나 루트 수준 요소가 없으므로 불완전한 DOM 트리가 있습니다. 문서를 저장하기 전에 루트 수준 요소를 추가해야 합니다. 그렇지 않으면 메서드가 Save 예외를 throw합니다.

reade가 문서의 루트 수준(예: 공백 또는 특성 노드)에 대해 유효하지 않은 리프 노드에 배치된 경우 reader는 루트에 사용할 수 있는 노드에 배치될 때까지 계속 읽습니다. 이때 문서가 로드되기 시작합니다.

적용 대상