Может ли значение QName быть без префикса? - PullRequest
1 голос
/ 13 марта 2012

Предположим, что элемент объявлен с типом QName:

<element name="example" type="QName" />

В экземпляре документа может быть значение example без префикса пространства имен:

<example>Hello</example>

Если да, то каков URI пространства имен для Hello?

Предположим, я объявляю пространство имен по умолчанию:

<document xmlns="http://www.example.org">
    <example>Hello</example>
</document>

Является ли Hello в пространстве имен http://www.example.org?

Ответы [ 2 ]

0 голосов
/ 18 марта 2012

Контент подчиняется тем же правилам, что и для имен элементов (а не атрибутов). QName без префикса интерпретируется как находящееся в пространстве имен по умолчанию, объявленном в экземпляре ближайшим содержащим элементом с атрибутом xmlns, или в пространстве без имен, если пространство имен не объявлено. Так что да, Hello будет интерпретироваться как QName, обозначающее имя в этом пространстве имен.

0 голосов
/ 13 марта 2012

Hello - это значение, а не имя элемента или атрибута, и поэтому оно не имеет URI пространства имен, это просто строка.

Объявление

<element name="example" type="QName" /> 

ограничить возможные значения example строками, соответствующими синтаксису QName (как определено в http://www.w3.org/TR/REC-xml-names/#ns-qualnames - поэтому допустимые значения могут быть a, a:b и т. д.), но это не говоритчто значение является QName.

...