2009-04-07 3 views
5

Является ли законным использовать атрибут targetNamespace или пустой в схеме Xml?Xml schema: empty targetNamespace

Если да, то что это значит, мы «добавляем» что-то в «пустое пространство имен» (которое всегда существует) или создаем «анонимное пространство имен», которое не связано с другими схемами?

Как выглядит XML-документ экземпляра, должны ли элементы явно быть привязаны к некоторому пространству имен?

ответ

11

См. XML Schema Part 0: Primer за очень сжатое описание того, как работают незаявленные объекты targetNamespaces.

Что касается пустого пространства имен TargetName, это недопустимо. Из spec:

Поскольку пустая строка не является допустимым именем пространства имен, снабжая пустая строка для TargetNamespace является неоправданной, а не то же самое, как не указывать его вообще. Соответствующая форма документа схемы, соответствующая · схеме, чьи компоненты не имеют {target namespace}, - это та, которая не имеет никакого атрибута targetNamespace, указанного вообще.

3

Да, определенно. Пространства имен XML необязательны - вы можете оставить их, если хотите, и если у вас не возникнут проблемы с неоднозначными элементами XML в вашем «XML-мире».