Мы общаемся со сторонней службой, используя XML-файл на основе стандартов, разработанных этой третьей стороной. Они дают нам шаблон XML для каждой «транзакции», и мы считываем его в DataSet с использованием System.Data.DataSet.ReadXML, устанавливаем правильные значения в DataSet, а затем записываем XML обратно, используя System.Data.DataSet.WriteXML. Этот процесс работал для нескольких разных файлов. Однако сейчас я добавляю дополнительный файл, который требует, чтобы в одном из полей был установлен целочисленный тип данных. Вот уменьшенная версия:
<EngineDocList>
<DocVersion>1.0</DocVersion>
<EngineDoc>
<MyData>
<FieldA></FieldA>
<FieldB></FieldB>
<ClientID DataType="S32"></ClientID>
</MyData>
</EngineDoc>
</EngineDocList>
Когда я смотрю на DataSet, созданный моим вызовом ReadXML для этого файла, таблица MyData имеет столбцы FieldA, FieldB и MyData_ID. Если я затем установлю значение MyData_ID, а затем сделаю вызов WriteXML, экспорт XML не имеет значения для ClientID. Еще раз, если я возьму способ DataType, то у меня действительно есть столбец ClientID, я могу установить его правильно, и экспортированный XML имеет правильное значение. Однако третье лицо требует, чтобы этот тип данных был определен.
Любые мысли о том, почему ReadXML будет переименовывать этот тег или как я мог иначе заставить этот процесс работать? В качестве альтернативы, я мог бы изменить способ, которым мы читаем и пишем XML, но, очевидно, предпочел бы не идти по этому пути, хотя эти предложения также будут приветствоваться. Спасибо.