O esquema XML está resultando em um elemento xml sem um espaço para nome
Estou tendo alguns problemas com um esquema muito simples. No corpo xml que o esquema especifica, o primeiro filho do elemento raiz é especificado como tendo xmlns = "", o que está causando problemas de validação para mim.
Eu pesquisei e pesquisei e tentei repetidamente descobrir por que isso está acontecendo e não tive sucesso. Isso está causando um problema maior no código do servidor, pois estou compondo um corpo xml e a validação dele está falhando devido ao meu elemento não ter xmlns = "".
Gostaria de entender por que o xmlns = "" é resultante da definição do esquema e como corrigi-lo.
Aqui está o esquema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org"
xmlns="http://www.example.org">
<xs:simpleType name="XYZ">
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ABC">
<xs:sequence>
<xs:element name="PQR" type="XYZ"/>
</xs:sequence>
</xs:complexType>
<xs:element name="A1">
<xs:complexType>
<xs:sequence>
<xs:element name="result" type="ABC"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Com base neste esquema, o seguinte documento é criado:
<?xml version="1.0" encoding="UTF-8"?>
<A1 xmlns="http://www.example.org">
<result xmlns="">
<PQR></PQR>
</result>
</A1>
Eu gostaria deste:
<?xml version="1.0" encoding="UTF-8"?>
<A1 xmlns="http://www.example.org">
<result>
<PQR></PQR>
</result>
</A1>
Eu estive olhando isso e tentando as coisas por cerca de um dia agora. Não deveria<result>
O elemento apenas faz parte do targetnamespace, tornando xmlns = "" desnecessário?
Além disso, quando tento validá-lo, estou recebendo o seguinte erro:
System ID: /Users/dev/Desktop/Untitled3.xml
Main validation file: /Users/dev/Desktop/Untitled3.xml
Schema: /Users/dev/Desktop/test.xsd
Engine name: Xerces
Severity: error
Description: cvc-complex-type.2.4.a: Invalid content was found starting with element '{"http://www.example.org":PQR}'. One of '{PQR}' is expected.
Start location: 4:10
End location: 4:13
URL: http://www.w3.org/TR/xmlschema-1/#cvc-complex-type