Господа профессионалы!
Можно ли при сериализации подключить xsd-схему?
Суть проблемы вот в чем:
1. Есть xsd-схема, например
<xs:schema xmlns:xs="
http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Mass">
<xs:complexType>
<xs:sequence>
<xs:element name="Gross">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="12"/>
<xs:fractionDigits value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Net">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:totalDigits value="7"/>
<xs:fractionDigits value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Т.е. два элемента типа decimal, у которых установлен шаблон на кол-во знаков до и после запятой.
2. Генерю класс по схеме
public partial class Mass
{
private decimal grossField;
private decimal netField;
public decimal Gross
{
get { return this.grossField;}
set { this.grossField = value;}
}
public decimal Net
{
get { return this.netField;}
set { this.netField = value;}
}
}
3. Запускаю сериализацию:
public void Test()
{
Mass mass = new Mass();
mass.Gross = 100.1M;
mass.Net = 7.7M;
XmlSerializer serializer = new XmlSerializer(typeof(Mass));
TextWriter writer = new StreamWriter("res.xml");
serializer.Serialize(writer, mass);
writer.Close();
}
4. Получаю результат:
<Mass xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<Gross>100.1</Gross>
<Net>7.7</Net>
</Mass>
ПРОБЛЕМА: нужно, чтобы поля типа decimal соответствовали шаблону, заданному в xsd:
Т.е. результат НУЖЕН в таком виде (3 и 4 знака после запятой соответственно):
<Mass xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<Gross>100.100</Gross>
<Net>7.7000</Net>
</Mass>
Как бы это сделать?
Заранее спасибо!
P.S. Чего-то форматирование не работает