Добавление префиксов и пространств имен в XML-сериализацию

Я работаю в мексиканской программе расчета налогов, и правительство предоставило следующий 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? :Д

6
задан John Saunders 20 May 2012 в 19:55
поделиться