Dlaczego elementy potomne generujące tlen z pustymi atrybutami xmlns?
Próbuję zrozumieć techniczną stronę pracy z domyślną przestrzenią nazw, zaczynając od schematu (rozwijającego się) i rozważając realistyczny i poprawny odpowiedni plik XML.
Używam Oxygen do zaprojektowania schematu.
W idealnej sytuacji chciałbym, aby użytkownik plików XML nie musiał zajmować się domyślną przestrzenią nazw (ponieważ są bolesne, podczas próby użycia XPath w dokumentach, które zadeklarowały domyślną przestrzeń nazw). Jednak z tego, co przeczytałem do tej pory, wydaje się, że nie jest to możliwe?
Mój przykładowy schemat wygląda tak:
<?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>
a tlen generuje przykładowy XML, który wygląda tak:
<?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>
Moje pytanie brzmi:
Dlaczego Oxygen generuje elementy potomne z pustymi atrybutami xmlns?Jak mogę tego najlepiej unikać?Czy możliwe jest utworzenie schematu, który może poprawnie opisać i zweryfikować dokument XML, który raczej nie ma zadeklarowanej przestrzeni nazw (domyślnie lub inaczej).Jeśli odpowiedź na (c) brzmi „tak”, w jaki sposób zmodyfikowałbyś mój przykład schematuJaki jest naprawdę dobry dokument, aby wyjaśnić to wszystko głębiej, ale jednocześnie być czytelnym (tzn. Nie znajduję dokumentów whttp://www.w3.org/XML/ w ogóle łatwe do zrozumienia lub przeczytania).