Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W ADO.NET można napisać reprezentację XML obiektu DataSetz jego schematem lub bez jego schematu. Jeśli informacje o schemacie są dołączone do kodu XML, są zapisywane przy użyciu języka definicji schematu XML (XSD). Schemat zawiera definicje tabeli DataSet, jak również definicje relacji i ograniczeń.
Gdy element DataSet jest zapisywany jako dane XML, wiersze w elemencie DataSet są zapisywane w ich bieżących wersjach. Jednak DataSet można również zapisać jako DiffGram, aby uwzględniał zarówno bieżące, jak i oryginalne wartości wierszy.
Reprezentacja XML dla DataSet może być zapisana do pliku, strumienia, obiektu XmlWriter lub ciągu. Te opcje zapewniają dużą elastyczność w sposobie transportu reprezentacji XML elementu DataSet. Aby uzyskać reprezentację DataSet XML w postaci ciągu, użyj metody GetXml jak pokazano w poniższym przykładzie.
Dim xmlDS As String = custDS.GetXml()
string xmlDS = custDS.GetXml();
GetXml Zwraca reprezentację DataSet XML bez informacji o schemacie. Aby zapisać informacje o schemacie z DataSet elementu (jako schemat XML) do ciągu, użyj polecenia GetXmlSchema.
Aby zapisać DataSet do pliku, strumienia lub XmlWriter, użyj metody WriteXml. Pierwszym przekazanym WriteXml parametrem jest miejsce docelowe danych wyjściowych XML. Na przykład przekaż ciąg zawierający nazwę pliku, obiekt System.IO.TextWriter itd. Możesz przekazać opcjonalny drugi parametr elementu , XmlWriteMode aby określić sposób zapisywania danych wyjściowych XML.
W poniższej tabeli przedstawiono opcje elementu XmlWriteMode.
| Opcja XmlWriteMode | Opis |
|---|---|
| IgnorujSchema | Zapisuje bieżącą zawartość DataSet jako dane XML bez schematu XML. Jest to wartość domyślna. |
| WriteSchema | Zapisuje bieżącą zawartość DataSet elementu jako dane XML ze strukturą relacyjną jako wbudowany schemat XML. |
| DiffGram | Zapisuje całość DataSet jako DiffGram, w tym oryginalne i bieżące wartości. Aby uzyskać więcej informacji, zobacz DiffGrams. |
Podczas pisania reprezentacji XML obiektu zawierającego DataSetDataRelation obiekty najprawdopodobniej chcesz, aby wynikowy kod XML zawierał wiersze podrzędne każdej relacji zagnieżdżone w powiązanych elementach nadrzędnych. Aby to osiągnąć, ustaw właściwość Nested na true podczas dodawania DataRelation do DataSet. Aby uzyskać więcej informacji, zobacz Zagnieżdżanie RelacjiDanych.
Poniżej przedstawiono dwa przykłady, jak zapisać reprezentację XML DataSet do pliku. Pierwszy przykład przekazuje nazwę pliku dla wynikowego kodu XML jako ciąg do pliku WriteXml. Drugi przykład przekazuje obiekt System.IO.StreamWriter .
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema)
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema);
Dim xmlSW As System.IO.StreamWriter = New System.IO.StreamWriter("Customers.xml")
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema)
xmlSW.Close()
System.IO.StreamWriter xmlSW = new System.IO.StreamWriter("Customers.xml");
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema);
xmlSW.Close();
Mapowanie kolumn na elementy XML, atrybuty i tekst
Możesz określić, jak kolumna tabeli jest reprezentowana w formacie XML przy użyciu ColumnMapping właściwości DataColumn obiektu. W poniższej tabeli przedstawiono różne MappingType wartości właściwości ColumnMapping kolumny tabeli oraz wynikowy kod XML.
| Wartość MappingType | Opis |
|---|---|
| Pierwiastek | Jest to wartość domyślna. Kolumna jest zapisywana jako element XML, w którym kolumna ColumnName jest nazwą elementu, a zawartość kolumny jest zapisywana jako tekst elementu. Przykład:<ColumnName>Column Contents</ColumnName> |
| Atrybut | Kolumna jest zapisywana jako atrybut XML elementu XML dla bieżącego wiersza, w którym kolumna ColumnName jest nazwą atrybutu, a zawartość kolumny jest zapisywana jako wartość atrybutu. Przykład:<RowElement ColumnName="Column Contents" /> |
| SimpleContent | Zawartość kolumny jest zapisywana jako tekst w elemencie XML dla bieżącego wiersza. Przykład:<RowElement>Column Contents</RowElement>Należy pamiętać, że SimpleContent nie można ustawić dla kolumny tabeli, która zawiera Element kolumny lub relacje zagnieżdżone. |
| Ukryte | Kolumna nie jest zapisywana w danych wyjściowych XML. |