Я разработал XSD, который определяет стандарты, и это помогает в общении двух приложений.Приложение A и B.
Приложение A правильно читает XML-данные из B.Но когда он пытается преобразовать / сериализовать те же данные в xml, он сериализуется неправильно.
Примеры XML: (хочет вроде как)
<Field>
<FieldId>1</FieldId>
<FieldType>
<FieldTypeString>John</FieldTypeString>
</FieldType>
<\Field>
or
<Field>
<FieldId>2</FieldId>
<FieldType>
<FieldTypeInteger>30</FieldTypeString>
</FieldType>
<\Field>
or
<Field>
<FieldId>3</FieldId>
<FieldType>
<FieldTypeDate>19/06/2019</FieldTypeString>
</FieldType>
<\Field>
Эквивалентный XSD:
Эквивалентный класс C #:
public partial class FieldGroupFieldColumnFieldFieldType
{
private object itemField;
private ItemChoiceType itemElementNameField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("FieldTypeCheckedUnChecked", typeof(bool))]
[System.Xml.Serialization.XmlElementAttribute("FieldTypeDate", typeof(System.DateTime), DataType = "date")]
[System.Xml.Serialization.XmlElementAttribute("FieldTypeFloat", typeof(decimal))]
[System.Xml.Serialization.XmlElementAttribute("FieldTypeInteger", typeof(string), DataType = "integer")]
[System.Xml.Serialization.XmlElementAttribute("FieldTypeString", typeof(string))]
[System.Xml.Serialization.XmlElementAttribute("FieldTypeTime", typeof(System.DateTime), DataType = "time")]
[System.Xml.Serialization.XmlElementAttribute("FieldTypeYESNO", typeof(bool))]
[System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
public object Item
{
get
{
return this.itemField;
}
set
{
this.itemField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public ItemChoiceType ItemElementName
{
get
{
return this.itemElementNameField;
}
set
{
this.itemElementNameField = value;
}
}
}
Приложение A отлично анализирует XML из BНо когда он сам генерирует XML, он выглядит следующим образом.
<Field>
<FieldId>1</FieldId>
<FieldType>
<Item>John</FieldTypeString>
<ItemElementName>2</ItemElementName>
</FieldType>
<\Field>
Я думаю, что свойство XSD / class нужно изменить!
Любые предложения по этому поводу будут высоко оценены.