Мне известно только одно определение Пространства имен XML и одно определение определения схемы XML также на http://www.w3.org. Поскольку схема XML очень сложна, один из трех стандартов определил стандарт XML Схема Часть 0: учебное пособие, второе издание , Схема XML, часть 1: структуры, второе издание и Схема XML, часть 2: типы данных, второе издание .
Если вам известно больше определений пространств имен XML и XML Schema (больше «словарей»), пожалуйста, опубликуйте ссылку на определение, которое вы имеете в виду.
Значение targetNamespace
в корне любой схемы очень легко понять. XML это не язык. Это метаязык. XML-схема помогает нам определить один язык. Мы должны дать уникальное имя определенному языку (схеме). Это targetNamespace
схемы. Таким образом, если какой-то документ следует интерпретировать как документ, написанный на английском языке США, он может быть не совсем корректным на английском языке Великобритании.
Таким образом, targetNamespace
в схеме является уникальным, и внутри XML-файла вы объявляете пространство имен элемента, это означает, что мы определяем точный язык (и диалект), на котором написан документ. В том, как вы говорите, также очень точно о контексте, в котором следует интерпретировать соответствующее имя.
Если вы определяете схему без targetNamespace
, это означает, что соответствующие элементы и атрибуты из XML-документа также должны принадлежать «пространству имен». Использование атрибута noNamespaceSchemaLocation
или schemaLocation
не обязательно . Таким образом, вы не должны ссылаться на схему в документе XML. В случае, если читатель документа XML должен знать из соответствующего контекста, какую схему вы имеете в виду.
В конце вашего вопроса вы задаете
Не было бы проще, если бы вместо этого
экземпляр документа будет просто указать
расположение XML-схемы и пусть
Xml Schema validator выяснить
указана схема или нет
целевое пространство?
Но значение атрибута noNamespaceSchemaLocation
- это точно путь к файлу XSD, который определяет используемую схему. Значением атрибута schemaLocation
является пространство имен и путь к файлу XSD, разделенные пробелом. Таким образом, атрибуты уже делают то, что вы предлагаете.