Я работаю в мексиканской программе расчета налогов, и правительство предоставило следующий XSD-файлhttp://www.sat.gob.mx/cfd/3/cfdv32.xsd, с помощью xsd.exe я преобразовал его в класс C #, который довольно большой, поэтому я просто предоставлю ссылку на него, чтобы не раздувать этот пост кодом:http://pastebin.com/r3VCgFMU.
После заполнения НЕКОТОРЫХ полей класса (Чтобы пример не стал слишком большим )Я попытался сериализовать XML следующим образом:
XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces();
xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");
xmlNameSpace.Add("schemaLocation", "http://www.sat.gob.mx/cfd/3/cfdv32.xsd");
xmlNameSpace.Add("cfdi", "www.sat.gob.mx/cfd/3");
XmlTextWriter xmlTextWriter = new XmlTextWriter("c:\\temp\\pruebas.xml", Encoding.UTF8);
xmlTextWriter.Formatting = Formatting.Indented;
XmlSerializer xs = new XmlSerializer(typeof(Comprobante));
xs.Serialize(xmlTextWriter, comprobante, xmlNameSpace);
xmlTextWriter.Close();
Что дает мне этот вывод:
Как мы видим на примере, предоставленном правительством(ftp://ftp2.sat.gob.mx/asistencia_servicio_ftp/publicaciones/solcedi/ejemplo1%20cfdv3.xml)в моем сгенерированном файле отсутствуют некоторые точки:
Как я могу добиться этих изменений в моем xml? :Д