Перейти к содержимому

Как создать xml по xsd схеме

  • автор:

Создание XML-документа на основе схемы XSD

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

Функция Создание образца XML создает образец XML-файла на основании файла XML-схемы (XSD).

Этот пункт можно использовать в следующих случаях.

  • Чтобы понять, как использовать различные конструкции в данной схеме.
  • Чтобы убедиться в том, что схема функционирует должным образом.

Функция Создание образца XML доступна только для глобальных элементов и требует, чтобы набор схем XML был допустимым.

С помощью этой функции обычно создаются допустимые XML-документы. Однако, если схема содержит одно или несколько из следующих ограничений, образец может быть недопустимым.

  • Ограничения удостоверения xs:key , xs:keyref и xs:unique .
  • Аспекты xs:pattern .
  • Перечисления типа xs:QName .
  • Типы xs:ENTITY , xs:ENTITIES и xs:NOTATION .

Также заметьте, что содержимое xs:base64Binary будет создано, только если в схеме есть перечисления для этого типа.

Создание экземпляра XML-документа на основе XSD-файла.

  1. Выполните действия, описанные в разделе «Практическое руководство. Создание и изменение файла схемы XSD».
  2. В обозревателе схемы XML щелкните правой кнопкой мыши глобальный элемент PurchaseOrder , а затем выберите пункт Создать образец XML. Если выбран данный параметр, файл PurchaseOrder.xml со следующим образцом XML-содержимого будет создан и открыт в редакторе XML:
   name1 street1 city1 state1 1  name2 street2 city2 state2 -79228162514264337593543950335  name1 street1 city1 state1 1   

Создание и изменение файла схемы XSD

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

Данный раздел описывает процесс создания нового файла XML-схемы (XSD) и добавления содержимого в XSD-файл.

Создание нового файла XML-схемы

  1. В Visual Studio откройте меню Файл и последовательно выберите пункты Создать>Файл. Или используйте клавиши CTRL+N.
  2. В диалоговом окне Создать файл выберите пункт Схема XML и нажмите кнопку Открыть. Будет создан новый файл. В Visual Studio откроется начальное представление и пустое окно Обозреватель схемы XML.

Редактирование файла

  1. Щелкните ссылку Используйте редактор XML для просмотра и изменения файла схемы XML в начальном представлении. Откроется редактор XML с новым файлом.
  2. Скопируйте пример кода XML-схемы из Схемы заказа на покупку и вставьте его вместо кода, добавленного в новый XSD-файл по умолчанию. Обозреватель схемы XML будет обновлен новым набором схем.

Руководство по XML: Разработка XML Schema

XML Schema- это описание разметки XML-документа сделанное в соответствии с синтаксисом XML. XML Schema — это спецификация, поддержанная фирмой Microsoft и имеющая множество преимуществ перед Document Type Definition (DTD), являющимся первоначальной спецификацией описания XML-модели. Спецификации DTD имеют множество недостатков, включая использование специального, отличного отXML синтаксиса, невозможность типизации данных и нерасширяемость. Например, спецификации DTD не позволяют вам определять содержание элемента как что-либо отличное от другого такого же элемента или строки. Чтобы лучше разобраться в спецификациях DTD, вы можете обратиться к Рекомендациям W3C XML. XML Schema превосходит DTD по всем параметрам, включая поддержку пространств имен (namespaces). Например, XML Schema позволяет вам определять элемент как integer, float, boolean, URL и др.

XML-парсер в Internet Explorer 5 может проверять XML-документ на допустимость как согласно DTD, так и XML-Schema. Как создать XML Schema?

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

Вы заметите в этом документе, что определено пространство имен по умолчанию «x-schema:classSchema.xml» . Это помогает при проверке синтаксиса сравнить весь документ со схемой ( x-schema ) по следующему URL (» classSchema.xml «).

Ниже приведена полная схема для данного документа. Она начинается с элемента Schema, содержащего описание пространства имен указанной схемы и, кроме того, в данном случае — еще и описание пространства имен типов данных. Первое, xmlns=»urn:schemas-microsoft-com:xml-data» , говорит о том, что данный XML-документ является схемой XML. Второе, xmlns:dt=»urn:schemas-microsoft-com:datatypes» , позволяет вам определять тип элемента и содержание атрибута с использованием префикса dt в атрибуте type в составе их определений ElementType и AttributeType .

  • ElementType : Присваивает тип и ограничивает значения элемента, а также определяет, какие дочерние элементы он может содержать, если таковые имеются.
  • AttributeType : Присваивает тип и ограничивает значения атрибута.
  • attribute : Определяет что ранее описанный тип атрибута может появиться в составе данного элемента ElementType .
  • element : Определяет, что ранее описанный тип элемента может появиться в составе данного элемента ElementType .

Попробуйте!

  • Объявления ElementType и AttributeType должны предшествовать определениям содержания attribute и element , относящихся к этим типам. Например, вышеприведенная схема, определение ElementType для элемента GPA должна предшествовать определению ElementType для элемента student .
  • Значение по умолчанию атрибута order зависит от значение атрибута content . Когда содержание установлено как » eltOnly ,» порядок имеет значение по умолчанию seq . Когда содержание определено как mixed, порядок имеет значение по умолчанию many . За дополнительной информацией по данным значениям, задаваемым по умолчанию, см. Руководство по XML Schema.

Автор: Msdn Online

Пример XML схемы

В этой главе будет показано, как писать XML схемы. Также вы узнаете, что схемы можно писать разными способами.

XML документ

Давайте посмотрим на следующий XML документ под названием «shiporder.xml»:

   John Smith Ola Nordmann 
Langgt 23
4000 Stavanger Norway
Empire Burlesque Special Edition 1 10.90 Hide your heart 1 9.90

Приведенный выше XML документ состоит из корневого элемента shiporder с обязательным атрибутом orderid. Элемент shiporder содержит три дочерних элемента: orderperson, shipto и item. Элемент item используется дважды и содержит элемент title, необязательный элемент note, а также элементы quantity и price.

Строка xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» говорит XML парсеру, что этот документ должен быть проверен на соответствие схеме. Строка xsi:noNamespaceSchemaLocation=»shiporder.xsd» указывает, где именно находится схема (в данном случае она находится в той же папке, что и файл «shiporder.xml»).

Создание XML схемы

Теперь для приведенного выше XML документа создадим XML схему.

Создадим новый файл, который назовем «shiporder.xsd». Для создания XML схемы будем просто следовать за структурой XML документа и определять каждый встреченный элемент. Начнем со стандартной XML декларации, за которой опишем элемент xs:schema, который и определяет саму схему:

Здесь мы используем стандартное пространство имен (xs) и URI, ассоциированный с этим пространством имен, который имеет стандартное значение http://www.w3.org/2001/XMLSchema.

Теперь мы должны определить элемент shiporder. У этого элемента есть атрибут, и он содержит другие элементы, поэтому мы рассматриваем его как элемент составного типа. Определения дочерних элементов элемента shiporder поместим в декларацию xs:sequence, что задает жесткую последовательность подэлементов:

Теперь определим элемент orderperson, который будет простого типа (так как он не содержит ни атрибуты, ни другие элементы). Его тип (xs:string) имеет префикс пространства имен, ассоциированного с XML схемой, что указывает на использование предопределенного типа данных:

Теперь нам нужно определить два элемента составного типа: shipto и item. Начнем с определения элемента shipto:

При помощи схем мы можем определить число возможных вхождений любого элемента. В этом нам помогут атрибуты maxOccurs и minOccurs. Атрибут maxOccurs задает максимальное число вхождений элемента, а атрибут minOccurs задает минимальное число вхождений. По умолчанию значение обоих атрибутов равно 1.

Теперь определим элемент item. Этот элемент может использоваться неограниченное число раз внутри элемента shiporder. Определить такую особенность элемента item позволяет присваивание атрибуту maxOccurs значения «unbounded». Это означает, что элемент item может использоваться столько раз, сколько нужно автору документа. Обратите внимание, что элемент note опционален. Определим это установив атрибут minOccurs в нулевое значение:

Теперь мы можем декларировать атрибут элемента shiporder. Поскольку это обязательный атрибут, используем определение use=»required».

Примечание: Атрибуты должны всегда декларироваться последними:

Вот полный код файла схемы «shiporder.xsd»:

Разделение схемы

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

Следующий способ компоновки схемы заключается в том, что сначала определяются все элементы и атрибуты, а затем на эти определения создаются ссылки при помощи атрибута ref.

Ниже приводится новая компоновка файла схемы («shiporder.xsd»):

Использование поименованых типов

Третий способ компоновки схемы предполагает определение классов или типов, которые позволяют повторное использование определений элементов. Это становится возможным, если дать имена элементам simpleTypes и complexTypes, а затем указать на них при помощи атрибута type.

Третий способ компоновки файла схемы («shiporder.xsd»):

Элемент restriction указывает на то, что тип данных является производным от типов данных из пространства имен W3C XML Schema. Таким образом, следующий фрагмент кода означает, что значение элемента или атрибута должно быть строковым:

Однако гораздо чаще элемент restriction используется для накладывания ограничений на элементы. Посмотрите на следующие строки из приведенной выше схемы:

Этот фрагмент кода указывает, что значение элемента или атрибута должно быть строковым, ровно шесть символов в длину, и этими символами должны быть цифры от 0 до 9.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *