2015-09-12 5 views
0

Я не смущен XML-схемами. Я считаю, что они используются для определения пользовательских элементов, которые будут использоваться в качестве шаблона.Пояснение/пример правильного использования XML-схемы?

Скажем, у меня есть следующая схема:

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

    <!-- definition of simple elements --> 
    <xs:element name="text" type="xs:string"/> 

    <!-- definition of attributes --> 
    <xs:attribute name="choice_value" type="xs:int"/> 

    <!-- definition of complex elements --> 
    <xs:element name="choice"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="text" minOccurs="1"/> 
     </xs:sequence> 
     <xs:attribute ref="choice_value" use="required"/> 
    </xs:complexType> 
    </xs:element> 

</xs:schema> 

Может кто-то пожалуйста, предоставить подробный пример, полный один элемент файла XML о том, как я использую и импортировать эту схему? Я могу импортировать или включать его, когда я пытаюсь объявить свой элемент, он говорит и не может быть найден. Результаты Google показывают только один способ импорта, но на самом деле не применяют его.

+0

Даже не забудьте прокомментировать. Мне действительно нужно указать в правильном направлении. –

+0

Схема - это просто проверка языка XML-файла. Это не требуется для импорта xml-файла, поскольку предполагается, что приложение, сгенерировавшее XML, сгенерировало его правильно. Схема полезна при чтении/анализе xml-файла, поскольку она предоставляет все теги и тип, которые вы ожидаете в XML-файле. – jdweng

ответ

1

XML-схема определяет словарь XML (какие элементы и имена атрибутов могут быть использованы) и грамматика (как элементы и атрибуты могут быть скомпонованы).

По Вашему XSD следующие XML-документы, например, было бы справедливо:

  1. <text/>
  2. <text>asdf</text>
  3. <choice choice_value="1"><text/></choice>
  4. <choice choice_value="1"><text>asdf</text></choice>

Ассоциация с XML документ с XML-схемой часто выполняется с помощью атрибутов xsi:noNamespaceSchemaLocation или xsi:schemaLocation на корневом элементе. Вот пример того, как намек на процессор XML, что XML-схемы, чтобы использовать для проверки документов XML # 4 выше try.xsd:

<choice choice_value="1" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="try.xsd"> 
    <text>asdf</text> 
</choice> 

Имейте в виду, что существуют и другие механизмы, чтобы связать XSD с документом XML такие как XML Catalogs, или настройки командной строки или графического интерфейса, характерные для любого данного процессора XML.

+0

Спасибо. Я не знаю, почему у меня возникла такая проблема. –

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