Возможно ли, чтобы DataSet.GetXML () помещал данные в атрибуты вместо элементов? - PullRequest
2 голосов
/ 20 августа 2009

У меня есть набор данных, который я заполняю с помощью SQL-запроса Oracle:

SELECT col_id, col_desc
FROM table_data;

Затем я генерирую набор данных с помощью функции

Dim ds as New DataSet
OracleDataAdapter.Fill(ds)

Теперь, когда я получаю XML сгенерированного набора данных через:

Dim strXML as String 
strXML = ds.GetXML()

Когда я читаю / отображаю строку, она выглядит следующим образом:

<NewDataSet>
  <Table>
    <COL_ID>ABC001</COL_ID>
    <COL_DESC>Angelo</COL_DESC>
  </Table>
  <Table>
    <COL_ID>ZFE851</COL_ID>
    <COL_DESC>John</COL_DESC>
  </Table>
  <Table>
    <COL_ID>XYU123</COL_ID>
    <COL_DESC>Mary</COL_DESC>
  </Table>
  <Table>
    <COL_ID>MLP874</COL_ID>
    <COL_DESC>James</COL_DESC>
  </Table>
</NewDataSet>

Я хочу, чтобы полученная строка отображалась следующим образом:

<NewDataSet>
  <Table COL_ID="ABC001" COL_DESC="Angelo"></Table>
  <Table COL_ID="ZFE851" COL_DESC="John"></Table>
  <Table COL_ID="XYU123" COL_DESC="Mary"></Table>
  <Table COL_ID="MLP874" COL_DESC="James"></Table>
</NewDataSet>

Как бы мне этого добиться?

Было бы легко, если бы, скажем, я читал строки из таблицы в наборе данных и строил строку?

1 Ответ

1 голос
/ 20 августа 2009

ОБНОВЛЕНО

Установите DataColumn.MappingType в MappingType.Attribute до получения XML:


    Dim column As DataColumn
    For Each column In ds.Tables.Item(0).Columns
        column.ColumnMapping = MappingType.Attribute
    Next
    ds.GetXml()

...