指定した System.IO.Stream と XmlReadMode を使用して、XML スキーマとデータを DataSet に読み込みます。
Overloads Public Function ReadXml( _
ByVal stream As Stream, _ ByVal mode As XmlReadMode _) As XmlReadMode
[C#]
public XmlReadMode ReadXml(Streamstream,XmlReadModemode);
[C++]
public: XmlReadMode ReadXml(Stream* stream,XmlReadModemode);
[JScript]
public function ReadXml(
stream : Stream,mode : XmlReadMode) : XmlReadMode;
パラメータ
- stream
読み込み元の Stream 。 - mode
XmlReadMode 値の 1 つ。
戻り値
データを読み込むために使用する XmlReadMode 。
解説
ReadXml メソッドを使用すると、XML ドキュメントから DataSet に、データだけ、またはデータとスキーマの両方を読み込むことができます。これに対して ReadXmlSchema メソッドは、スキーマだけを読み込みます。データとスキーマの両方を読み取るには、 XmlReadMode パラメータを含む ReadXML オーバーロードの 1 つを使用し、その値を ReadSchema に設定します。
WriteXml メソッドと WriteXmlSchema メソッドについても、それぞれ同様です。XML データ、またはスキーマとデータの両方を DataSet から書き込むには、 WriteXml メソッドを使用します。スキーマだけを書き込むには、 WriteXmlSchema メソッドを使用します。
インライン スキーマを指定した場合、そのインライン スキーマはデータを読み込む前に既存のリレーショナル構造を拡張するために使用されます。競合が存在する場合は (たとえば、異なるデータ型で定義された同じテーブルの同じ列)、例外が発生します。
インライン スキーマを指定しない場合、XML ドキュメントの構造に従い、必要に応じて、リレーショナル構造は推論によって拡張されます。すべてのデータを公開するために、推論によってスキーマを拡張できない場合は、例外が発生します。
DataSet の XSD スキーマに targetNamespace が含まれている場合、データを読み取ることができない可能性があります。また、 ReadXml を呼び出して、名前空間の限定がない要素を含む XML で DataSet を読み込むと、例外が発生する可能性があります。限定されていない要素を読み取るには、次の例のように、XSD スキーマで elementFormDefault を "qualified" に設定します。
<xsd:schema id="MyDataSet"
elementFormDefault="qualified"
targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
xmlns="http://www.tempuri.org/MyDataSet.xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>
メモ DataSet のスキーマに、同じ名前空間で名前が同じであるが型が違う要素が含まれている場合、 XmlReadMode.ReadSchema を指定してスキーマを ReadXml で DataSet に読み込もうとすると、例外がスローされます。この例外は、.NET Framework Version 1.0 を使用している場合は発生しません。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
DataSet クラス | DataSet メンバ | System.Data 名前空間 | DataSet.ReadXml オーバーロードの一覧