miércoles, 9 de septiembre de 2015

no aparece xsi en schemalocation en un archivo xml



Estimados lectores, ha sido una experiencia agradable el hacer este blog y tener algunos lectores que comparten el gusto por la programación; actualmente estoy empezando otro proyecto, muy personal,  con tecnología web  que espero compartir con toda la comunidad de programadores y necesito recursos porque es algo muy personal y mi situación financiera no es muy buena.

 Si alguien desearía apoyarme  tengo una tarjeta Oxxo Saldazo con el número:  4766-8408-7508-1593, cualquier apoyo lo pueden hacer en cualquier tienda Oxxo o en Banamex, les agradezco y que sus proyectos lleguen a buen fin.


Hola amigos, he tenido problemas para que me aparezca el prifijoxsi en schemalocation y solo lo resolve de la siguiente manera espero que les sirva, ya que por este detalle el archivo no validaba en el validador del SAT
esta es la rutina para colocr los datos del encabezado de mi arcivo xml en este caso un catalogo de cuentas que pide el SAT(México)      
 Dim Catalogo As System.Xml.XmlNode
         Dim ElementNodo As System.Xml.XmlElement
    
           Dim xsi As String = "http://www.w3.org/2001/XMLSchema-instance"
            URI_SAT = "www.sat.gob.mx/esquemas/ContabilidadE/1_1/CatalogoCuentas"
            Catalogo = m_xmlDOM.CreateElement("Catalogo", URI_SAT)
            ElementNodo = CType(Catalogo, XmlElement)
            ElementNodo.SetAttribute("xmlns:catalogocuentas", URI_SAT)
            ElementNodo.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")


‘para poner ese atributo yo lo tenia de la siguiente manera
ElementNodo.SetAttribute("xsi:schemaLocation", "http://www.w3schools.com http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/CatalogoCuentas/CatalogoCuentas_1_1.xsd")
Y NUNCA ME FUNCIONO, APARECIA SIN EL PREFIJO xsi
Asi que lo hice de la siguiente manera


            Aquí empieza la colocación de atributo xsi
            Dim schemaLocation As XmlAttribute = m_xmlDOM.CreateAttribute("xsi",
       "schemaLocation", xsi)
            schemaLocation.Value = "www.sat.gob.mx/esquemas/ContabilidadE/1_1/CatalogoCuentas http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/CatalogoCuentas/CatalogoCuentas_1_1.xsd"
            ElementNodo.SetAttributeNode(schemaLocation)
            m_xmlDOM.AppendChild(ElementNodo)
‘y aqui se sigue colocando los demas atributos con setatributte y se va a otras rutinas pero lo fundamental para que aparezcal xsi es lo anterior
            ElementNodo.SetAttribute("Version", "1.1")
            ElementNodo.SetAttribute("RFC", vRFC)
            ElementNodo.SetAttribute("Anio", vAño)
            ElementNodo.SetAttribute("Mes", vMes)
            m_xmlDOM.AppendChild(Catalogo)
            Nodo = Catalogo
            InsentarNodo(CType(Catalogo, XmlElement))
            Catalogo.Prefix = "catalogocuentas"
Nota; también, si tienen la cadena funcionando bien, copienla tal y como esta, lo que pasa es que existgen caracteres ocultos que a veces el Xsd no funciona por esos caracteres ocultos.
Si ienen unamanera mas optima de resolverla, no duden en compartirla
saludos

No hay comentarios:

Publicar un comentario