xml ms-access access-vba msxml

¿Por qué createProcessingInstruction en MSXML genera un resultado incompleto?



ms-access access-vba (2)

El siguiente código VBA genera <?xml version="1.0"?> Como salida.

Dim XML As New DomDocument Dim pi As IXMLDOMProcessingInstruction ''.... some code that sets the root element of the document Set pi = XML.createProcessingInstruction("xml", "version=''1.0'' encoding=''UTF-8''") XML.insertBefore pi, XML.documentElement

¿Por qué se encoding="UTF-8" la encoding="UTF-8" ?


<? xml?> no es una instrucción de procesamiento. El constructo <? Xml?> Se llama declaración XML y obedece a reglas diferentes a una Instrucción de procesamiento real. Crear un PI con el nombre ''xml'' no está bien formado; los nombres que comienzan con ''xml'' están reservados .

Para cambiar el formato del prólogo, necesita configurar un XMLWriter , configurar ''versión'', ''codificación'' o simplemente ''omitXMLDeclaration'' para eliminarlo por completo, lo cual está perfectamente bien, ya que 1.0 y UTF-8 son los valores predeterminados.


UTF-8 es la codificación predeterminada de todos modos. Lo que ha especificado es redundante, por lo que es probable que el serializador lo omita. Sin embargo, el campo de version no es un campo opcional. Si el archivo tiene una declaración XML, la declaración debe incluir el campo de version .