Warum erzeugt Oxygen untergeordnete Elemente mit leeren xmlns-Attributen?
Ich versuche, die technische Seite des Arbeitens mit dem Standard-Namespace zu verstehen, wenn ich mit einem Schema beginne (eines entwickle) und eine realistische und korrekte entsprechende XML-Datei in Betracht ziehe.
Ich benutze Sauerstoff, um das Schema zu entwerfen.
Idealerweise möchte ich, dass der Benutzer der XML-Dateien nicht mit dem Standard-Namespace umgehen muss (weil sie schmerzhaft sind, wenn er versucht, XPath für Dokumente zu verwenden, die den Standard-Namespace deklariert haben). Doch nach dem, was ich bisher gelesen habe, scheint das nicht möglich zu sein?
Mein Beispielschema sieht so aus:
<?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>
und Sauerstoff erzeugt ein XML-Beispiel, das so aussieht:
<?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>
Meine Frage ist:
Warum generiert Oxygen untergeordnete Elemente mit leeren xmlns-Attributen?Wie kann ich das am BESTEN vermeiden?Ist es möglich, ein Schema zu erstellen, das ein XML-Dokument korrekt beschreibt und validiert, das keinen deklarierten Namespace hat (Standard oder anderweitig)?Wenn die Antwort auf (c) "Ja" lautet, wie würden Sie mein Schemabeispiel ändern?Was ist ein wirklich gutes Dokument, um all dies etwas ausführlicher zu erklären, aber gleichzeitig lesbar zu sein (d. H. Ich finde keine Dokumente unterhttp://www.w3.org/XML/ überhaupt leicht zu verstehen oder zu lesen).