utiliza - ¿Es xmlns=“” un espacio de nombres xml válido?
xmlns que es (2)
No es un XML NS válido. No es una declaración XML NS válida. Por favor, consulte la sección 2.2 de espacios de nombres en XML 1.0:
La cadena vacía, aunque es una referencia legal de URI, no se puede usar como nombre de espacio de nombres.
Sin embargo, es la única forma de anular la declaración de NS por defecto si está vigente o no tiene efecto. Ver. Espacios de nombres en XML 1.0 y 1.1, sección 6.2 . Sin embargo, el 1.1 NS rec añadió una forma de anular también una declaración NS con un prefijo.
Por lo tanto, es válido, pero no es "un espacio de nombres XML válido" como lo escribió el OP.
¿Es "vacío" un valor válido para el espacio de nombres XML? En caso afirmativo, ¿qué significa?
Tengo el siguiente código XML, pero no estoy seguro de a qué espacio de nombres pertenecen los elementos Field1
y Field2
.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soap:Body>
<Root xmlns="uri">
<Field1 xmlns="">147079737</Field1>
<Field2 xmlns="">POL</Field2>
</Root>
</soap:Body>
</soapenv:Envelope>
Sí, es válido. La sección 6.2 en la recomendación de espacios de nombres en XML 1.0 dice específicamente:
El valor del atributo en una declaración de espacio de nombres predeterminada PUEDE estar vacío. Esto tiene el mismo efecto, dentro del alcance de la declaración, de que no haya espacio de nombres predeterminado.
Citado del comentario:
Es legal, y esta es la manera de introducir un elemento en el espacio de nombres global.