1) Я понимаю, что пространства имен являются средством дифференцирования между различными схемами/словарями, указанными с использованием XML-схемы, но я не понимаю, почему это хорошая идея, что пространство имен (для которых схема разрабатывает словарь) указывается в самой схеме (через атрибут targetNamespace
).Xml Schema namespace
a) Не было бы лучше, если бы мы смогли связать конкретное пространство имен с определенным лексиконом/схемой внутри документов экземпляра? Таким образом, у тех, кто пишет документы экземпляра, была бы полная свобода связывать схему с любым именем пространства, которое они хотели бы!
b) Единственное преимущество, которое я вижу в схеме, указывающей целевое пространство имен, заключается в том, что ее создатели имеют возможность помещать документ в конец пространства имен, который может описывать элементы этого пространства имен (при условии, что схема использует URL-адрес для пространства имен) , Существуют ли другие преимущества?
2) Если схема не имеет targetNamespace
, вы должны ссылаться (в пределах экземпляра документа) к конкретной схеме, используя атрибут noNamespaceSchemaLocation
вместо schemaLocation
атрибута.
Не было бы проще, если бы экземпляр экземпляра документа просто указывал местоположение схемы и позволял валидатору XML Schema выяснить, указывает ли схема targetNamespace
?
спасибо
Термин «схема XML» относится только к языку описания схемы. Отдельные схемы просто называются «схемой» или «схемой». –