Подтвердить что ты не робот

Когда следует использовать файлы XSD?

У меня возникли проблемы с изучением целей документов XSD и хотелось бы получить либо объяснение, либо ссылку на достойный ресурс. Я читал несколько веб-сайтов в течение нескольких часов и не нашел ничего, что объясняет "большую картину".

В частности, я хотел бы знать:

  • Когда вам нужен XSD? Зачем вы его используете?
  • Какие преимущества предлагает XSD? Каковы альтернативы?

Из того, что я понимаю до сих пор, вы в основном описываете структуру класса в формате XML. Но что вы делаете с этим в этот момент? Используется ли он во время компиляции? Используется ли это для упрощения сохранения экземпляров класса в XML-документе?

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

Кроме того, возможно ли описывать функции в документе XSD/XML?

Спасибо заранее.

4b9b3361

Ответ 1

XSD позволяет вам определять объекты схемы. Существует множество инструментов, которые принимают xsd как входные данные и генерируют классы для этих объектов. Многие из этих инструментов также генерируют Marshalling/Unmarshalling - (преобразование объектов в xml и наоборот), а также только классы классов с равными значениями. Существует много приложений, которые должны преобразовывать экземпляры объектов в память в представление xml и наоборот и без xsd и подходящий инструмент, который вам нужно будет написать код преобразования для каждого объекта вручную, который может быть подвержен ошибкам и/или может быть очень в зависимости от количества классов в вашем домене. Репрезентация объекта xml также может быть недействительной, если она поступает из внешнего источника, и xsd может проверить их и позволить им развязать их к экземплярам объектов.

Для получения дополнительной информации см.

Кастор/Xml Beans и т.д. для java

Инструмент XSD.exe для Microsoft Tech.

Ответ 2

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

Ответ 3

Копирование из W3Schools:

"

Цель XML-схемы - определить правовые строительные блоки XML-документ, как DTD.

Схема XML:

- defines elements that can appear in a document
- defines attributes that can appear in a document
- defines which elements are child elements
- defines the order of child elements
- defines the number of child elements
- defines whether an element is empty or can include text
- defines data types for elements and attributes
- defines default and fixed values for elements and attributes

"

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

Ответ 4

Кажется, вы запутались в одном аспекте XML-схемы - их использование используется в качестве входа в XSD.EXE или какой-то другой инструмент, который может сделать что-то подобное. XSD.EXE использует файл XML Schema и может создавать набор классов .NET, которые могут быть сериализованы в XML, которые будут проверяться на соответствие схеме.

Это угловой случай углового случая.

Ответ 5

1) Из http://en.wikipedia.org/wiki/XML_Schema_ (W3C):

Как и все языки XML-схемы, XSD можно использовать для выражения набора правил, которым должен соответствовать XML-документ, чтобы считаться "действительным" в соответствии с этой схемой.

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

2). Список альтернативных (например, DTD) схем и их характеристик см. в этих слайдах:

Ответ 6

XSD - это документы, которые определяют структуру документа XML и помогают в их проверке. Альтернативой этим являются файлы DTD. Эти файлы в основном используются для html-документов.