Как создать схему xsd на основе файла xml

Обновлено: 02.07.2024

Тим Фишер имеет более чем 30-летний опыт работы в сфере технологий. Он пишет о технологиях более двух десятилетий и является вице-президентом и генеральным директором Lifewire.

В этой статье

Перейти к разделу

Что нужно знать

  • Файл XSD представляет собой файл схемы XML.
  • Откройте его в Visual Studio или любом текстовом редакторе.
  • Преобразование в формат XML, JSON или Excel с помощью тех же программ или специального конвертера.

В этой статье объясняется, что такое файлы XSD, в том числе, как их открыть и преобразовать в другой формат файла.

Что такое файл XSD?

Файл с расширением XSD, скорее всего, является файлом схемы XML; текстовый формат файла, который определяет правила проверки для XML-файла и объясняет форму XML.

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

Файлы XML могут ссылаться на файл XSD с атрибутом schemaLocation.

Файлы XSD в Windows 10, которые открываются с помощью Microsoft Visual Studio

Программа вышивки крестом Pattern Maker от HobbyWare также использует это расширение файла для своего формата.

Как открыть файл XSD

SchemaViewer – это бесплатная программа, которая отображает XSD-файлы в правильном древовидном формате, что упрощает их чтение по сравнению с простым текстовым редактором, таким как Блокнот.

Файл также можно открыть с помощью Microsoft Visual Studio, XML Notepad, EditiX XML Editor, Progress Stylus Studio и XMLSpy. Oxygen XML Editor — это один из немногих инструментов для открытия XSD, который работает в Linux, Mac и Windows.

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

XSD-файл в коде Visual Studio

Вот пример того, как выглядит файл XSD при открытии в текстовом редакторе:

Если вы имеете дело с XSD-файлом, используемым в Pattern Maker, вы, конечно, можете открыть его с помощью этой программы. Однако в качестве бесплатного способа открыть и распечатать файл выкройки HobbyWare предлагает программу Pattern Maker Viewer. Просто перетащите файл в программу или воспользуйтесь меню «Файл» > «Открыть». Это средство просмотра также поддерживает аналогичный формат PAT.

Приложение Cross Stitch Paradise для Android также может открывать XSD-файлы для вышивания крестиком.

Как преобразовать файл XSD

Самый простой способ преобразовать файл XSD в другой формат — использовать один из редакторов, указанных выше.

Например, Visual Studio может сохранить файл в XML, XSLT, XSL, DTD, TXT и других подобных форматах.

Редактор схемы JSON должен иметь возможность конвертировать его в JSON. Дополнительную информацию об ограничениях этого преобразования см. в этой ветке Stack Overflow.

Если вы ищете конвертер XML в JSON, вы можете воспользоваться онлайн-конвертером XML в JSON.

Вы можете использовать Microsoft Excel, если вам нужно импортировать данные из файла и поместить их в электронную таблицу. В этом вопросе «Как преобразовать файл XSD в XLS» на Stack Overflow вы можете увидеть, как создать источник XML из файла, а затем перетащить данные прямо в электронную таблицу.

Вполне вероятно, что упомянутая выше программа Pattern Maker (а не бесплатная программа просмотра) может быть использована для преобразования файла вышивки крестом в новый формат.

Все еще не можете открыть файл?

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

Например, суффикс XDS очень похож на XSD, но вместо этого используется для файлов проекта DS Game Maker и файлов LcdStudio Design. Ни один из этих форматов файлов не связан с XML-файлами или шаблонами.

Та же концепция применяется и в других местах, например, в файлах XACT Sound Bank, использующих расширение .XSB. Это звуковые файлы, которые не открываются ни в одной XSD-совместимой программе. XFDL и XFDF очень похожи.

Если ваш файл заканчивается другим расширением, изучите буквы/цифры, которые вы видите, чтобы узнать, какие программы могут открывать или преобразовывать файлы определенного типа.

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

Документ XML

Давайте посмотрим на этот XML-документ под названием "shiporder.xml":

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

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

Создать XML-схему

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

Начнем с открытия нового файла, который мы назовем "shiporder.xsd". Чтобы создать схему, мы могли бы просто следовать структуре XML-документа и определять каждый элемент по мере его нахождения. Мы начнем со стандартного объявления XML, за которым следует элемент xs:schema, определяющий схему:

Далее мы должны определить элемент "shiporder". Этот элемент имеет атрибут и содержит другие элементы, поэтому мы рассматриваем его как сложный тип. Дочерние элементы элемента "shiporder" окружены элементом xs:sequence, который определяет упорядоченную последовательность подэлементов:

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

Далее мы должны определить два элемента сложного типа: "shipto" и "item". Начнем с определения элемента «shipto»:

С помощью схем мы можем определить количество возможных вхождений элемента с помощью атрибутов maxOccurs и minOccurs. maxOccurs указывает максимальное количество вхождений для элемента, а minOccurs указывает минимальное количество вхождений для элемента. Значение по умолчанию для maxOccurs и minOccurs равно 1!

Теперь мы можем определить элемент "item". Этот элемент может появляться несколько раз внутри элемента "доставка". Это определяется установкой для атрибута maxOccurs элемента «item» значения «unbounded», что означает, что может быть столько вхождений элемента «item», сколько пожелает автор. Обратите внимание, что элемент «примечание» является необязательным. Мы указали это, установив для атрибута minOccurs нулевое значение:

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

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

Вот полный список файла схемы под названием "shiporder.xsd":

Разделить схему

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

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

Вот новый дизайн файла схемы ("shiporder.xsd"):

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

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

Вот третий вариант файла схемы ("shiporder.xsd"):

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

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

Это указывает на то, что значение элемента или атрибута должно быть строкой, состоящей ровно из шести символов подряд, и эти символы должны быть числами от 0 до 9.

Схема XML описывает структуру документа XML.

Язык схемы XML также называется определением схемы XML (XSD).

Пример XSD

Целью XML-схемы является определение легальных строительных блоков XML-документа:

  • элементы и атрибуты, которые могут отображаться в документе
  • количество (и порядок) дочерних элементов
  • типы данных для элементов и атрибутов
  • значения по умолчанию и фиксированные значения для элементов и атрибутов

Зачем изучать XML-схему?

В мире XML ежедневно используются сотни стандартизированных форматов XML.

Многие из этих стандартов XML определяются схемами XML.

XML-схема — это основанная на XML (и более мощная) альтернатива DTD.

Схемы XML поддерживают типы данных

Одним из самых сильных сторон XML-схем является поддержка типов данных.

  • Легче описать допустимое содержание документа.
  • Проще проверить правильность данных.
  • Легче определить фасеты данных (ограничения данных)
  • Легче определить шаблоны данных (форматы данных)
  • Легче преобразовывать данные между разными типами данных.

Схемы XML используют синтаксис XML

Еще одно преимущество XML-схем заключается в том, что они написаны на языке XML.

  • Вам не нужно учить новый язык
  • Для редактирования файлов схемы можно использовать XML-редактор.
  • Вы можете использовать анализатор XML для анализа файлов схемы.
  • Вы можете управлять своей схемой с помощью XML DOM
  • Схему можно преобразовать с помощью XSLT.

XML-схемы расширяемы, поскольку они написаны на XML.

Расширяемое определение схемы позволяет:

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

Схемы XML защищают передачу данных

При отправке данных от отправителя к получателю важно, чтобы обе части имели одинаковые «ожидания» в отношении содержания.

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

Такая дата, как "03-11-2004", в некоторых странах будет интерпретироваться как 3 ноября, а в других - как 11 марта.

Однако элемент XML с таким типом данных:

обеспечивает взаимное понимание содержимого, поскольку для типа данных XML "дата" требуется формат "ГГГГ-ММ-ДД".

Хорошего оформления недостаточно

Правильно сформированный документ XML – это документ, который соответствует правилам синтаксиса XML, например:

  • он должен начинаться с объявления XML
  • у него должен быть один уникальный корневой элемент
  • начальные теги должны иметь соответствующие конечные теги
  • элементы чувствительны к регистру
  • все элементы должны быть закрыты
  • все элементы должны быть правильно вложены
  • все значения атрибутов должны быть заключены в кавычки
  • сущности должны использоваться для специальных символов

Даже если документы правильно оформлены, они все равно могут содержать ошибки, и эти ошибки могут иметь серьезные последствия.

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

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

Синтаксис

Вам необходимо объявить схему в XML-документе следующим образом:

Пример

В следующем примере показано, как использовать схему —

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

Элементы

Как мы видели в главе XML — Элементы, элементы являются строительными блоками XML-документа. Элемент может быть определен в XSD следующим образом —

Типы определений

Вы можете определить элементы XML-схемы следующими способами:

Простой шрифт

Сложный тип

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

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

Глобальные типы

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

Теперь давайте используем этот тип в нашем примере следующим образом:

Вместо того, чтобы определять имя и компанию дважды (один раз для Address1 и один раз для Address2), теперь у нас есть одно определение. Это упрощает обслуживание, т. е. если вы решите добавить в адрес элементы "Почтовый индекс", вам нужно добавить их только в одном месте.

Атрибуты

Атрибуты в XSD предоставляют дополнительную информацию внутри элемента. Атрибуты имеют свойства name и type, как показано ниже —

Читайте также: