Por que o Oxygen está gerando elementos filhos com atributos xmlns vazios?
Eu estou tentando compreender o lado técnico de trabalhar com o namespace padrão, ao iniciar com um esquema (desenvolvendo um) e considerando um arquivo XML correspondente realista e correto.
Eu estou usando o oxigênio para projetar o esquema.
Idealmente, gostaria que o usuário dos arquivos XML não tivesse que lidar com o namespace padrão (porque eles são penosos, ao tentar usar o XPath em documentos que declararam o namespace padrão). No entanto, pelo que li até agora, parece que não é possível?
Meu esquema de exemplo é assim:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/"
xmlns="http://www.example.com/">
<xs:element name="QueryResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="Result"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Result">
<xs:complexType>
<xs:sequence>
<xs:element ref="Patient"/>
</xs:sequence>
<xs:attribute name="type" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="VisitNumber" type="xs:string"/>
<xs:element name="Demographics">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="firstNames" type="xs:string"/>
<xs:element minOccurs="1" maxOccurs="1" name="surname" type="xs:string"/>
<xs:element minOccurs="1" maxOccurs="1" name="dateOfBirth" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Patient">
<xs:complexType>
<xs:sequence>
<xs:element ref="Demographics"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
e oxigênio gera um exemplo de XML que se parece com isso:
<?xml version="1.0" encoding="UTF-8"?>
<QueryResponse xmlns="http://www.example.com/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.com/ file:/home/me/simplifiedResponse.xsd">
<Result>
<Patient>
<Demographics>
<firstNames xmlns="">firstNames0</firstNames>
<surname xmlns="">surname0</surname>
<dateOfBirth xmlns="">2006-05-04T18:13:51.0Z</dateOfBirth>
</Demographics>
</Patient>
</Result>
</QueryResponse>
Minha pergunta é:
Por que o Oxygen gera elementos filhos com atributos xmlns vazios?Como eu posso evitar isso?É possível criar um esquema que possa descrever e validar corretamente um documento XML que, em vez disso, não possui namespace declarado (padrão ou não).Se a resposta para (c) for 'sim', como você modificaria meu exemplo de esquemaO que é um documento realmente bom para explicar tudo isso com um pouco mais de profundidade, mas que pode ser lido ao mesmo tempo (ou seja, não encontro documentos emhttp://www.w3.org/XML/ de todo fácil de entender ou ler).