2016-04-12 2 views
0

Я искал много мест для пространств имен, но оленьей кожи получить удовлетворительный ответкак использовать XSD пространство имен

на следующий XSD файл

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://www.example.org/schema" 
      xmlns="http://www.w3.org/2001/XMLSchema" 
      elementFormDefault="qualified"> 

      <xs:element name="product"/> 

</xs:schema> 

для приведенной выше коды, следующие мои договоренности. пожалуйста, исправьте меня, если я ошибаюсь. Кроме того, у меня есть некоторый запрос относительно того же:

  1. xmlns:xs="http://www.w3.org/2001/XMLSchema" это место, где хранится Defination всех элементов и типов данных я использую в моем текущем документе.

  2. targetNamespace="http://www.example.org/schema На самом деле это имя пакета, в котором будет храниться текущий файл.

  3. xmlns="http://www.w3.org/2001/XMLSchema": не знаю, что это

  4. ** xmlns:tns** такой же, как TargetNamespace. то почему мы используем его отдельно?

  5. что использование первой и третьей линии

+0

Пробуйте учебники W3Schools. Это не место для обучения основам, таким как пространства имен XML. – kimbert

ответ

2

Во-первых, эти два заявления:

xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns="http://www.w3.org/2001/XMLSchema" 

указывают, что оба названия приставкой «хз», и префиксов имен, представляют собой имена, смысл определяется в спецификации W3C XSD. Это дает вам возможность написать <xs:element> или просто <element>. Нет особых причин для объявления обоих; лучше использовать одну форму или другую последовательно.

Атрибут targetNamespace="http://www.example.org/schema" указывает, что эта схема определяет структуру элементов (и, возможно, атрибутов) в пространстве имен http://www.example.org/schema, который предположительно является пространством имен, для которого вы являетесь элементом управления проектом (под которым я подразумеваю, вы не должны быть используя это конкретное пространство имен, за исключением примера, потому что это не ваше пространство имен).

Это довольно часто можно увидеть объявление как

xmlns:tns="http://www.example.org/schema" 

, который связывает префикс (в данном случае «ТНС») в целевое пространство имен схемы. Если у вас есть один компонент схемы, которая ссылается на другую в том же целевом пространстве имен (например, декларация элемента, ссылающийся тип), то есть два способа сделать это:

(1) <xs:element name="e" type="t"/> 

Это работает, когда «Xs» префикс привязан к «http://www.w3.org/2001/XMLSchema», а пространство имен по умолчанию такое же, как и в целевом пространстве имен.

(2) <element name="e" type="tns:t"/> 

Это работает, когда пространство имен по умолчанию «http://www.w3.org/2001/XMLSchema» и префикс «ТНС» связывается с целевым пространством имен.

Смежные вопросы