Как проверить xml по xsd схеме
Перейти к содержимому

Как проверить xml по xsd схеме

  • автор:

Проверка по XML-схеме (XSD) с помощью XmlSchemaCollection

Объект XmlSchemaCollection можно использовать для проверки XML-документа по схемам на языке XSD. Объект XmlSchemaCollection повышает производительность за счет сохранения схем в коллекции, чтобы они не загружались в память при каждой проверке. Если схема существует в коллекции схем, для ее поиска в коллекции используется атрибут schemaLocation .

Класс XmlSchemaCollection устарел и заменен классом XmlSchemaSet. Дополнительные сведения о классе XmlSchemaSet см. в руководстве по использованию XmlSchemaSet для компиляции схемы.

В следующем примере показан корневой элемент файла данных.

В этом примере атрибут targetNamespace имеет значение urn:bookstore-schema , которое является тем же пространством имен, которое используется при добавлении схемы в коллекцию XmlSchemaCollection.

Следующий пример кода добавляет схему XML в коллекцию XmlSchemaCollection.

Dim xsc As New XmlSchemaCollection() ' XML Schema. xsc.Add("urn:bookstore-schema", schema) reader = New XmlTextReader(filename) vreader = New XmlValidatingReader(reader) vreader.Schemas.Add(xsc) 
XmlSchemaCollection xsc = new XmlSchemaCollection(); // XML Schema. xsc.Add("urn:bookstore-schema", schema); reader = new XmlTextReader (filename); vreader = new XmlValidatingReader (reader); vreader.Schemas.Add(xsc); 

В основном атрибут targetNamespace используется при добавлении свойства namespaceURI в методе Add коллекции XmlSchemaCollection. Перед добавлением схемы в коллекцию XmlSchemaCollection можно указать ссылку со значением NULL. Для схем без пространства имен следует использовать пустую строку («»). В коллекции XmlSchemaCollection может быть только одна схема без пространства имен.

Следующий пример кода добавляет схему XML HeadCount.xsd в коллекцию XmlSchemaCollection и проверяет файл HeadCount.xml.

Imports System Imports System.IO Imports System.Xml Imports System.Xml.Schema Namespace ValidationSample Class Sample Public Shared Sub Main() Dim tr As New XmlTextReader("HeadCount.xml") Dim vr As New XmlValidatingReader(tr) vr.Schemas.Add("xsdHeadCount", "HeadCount.xsd") vr.ValidationType = ValidationType.Schema AddHandler vr.ValidationEventHandler, AddressOf ValidationHandler While vr.Read() End While Console.WriteLine("Validation finished") End Sub ' Main Public Shared Sub ValidationHandler(sender As Object, args As ValidationEventArgs) Console.WriteLine("***Validation error") Console.WriteLine("Severity:", args.Severity) Console.WriteLine("Message:", args.Message) End Sub ' ValidationHandler End Class ' Sample End Namespace ' ValidationSample 
using System; using System.IO; using System.Xml; using System.Xml.Schema; namespace ValidationSample < class Sample < public static void Main() < XmlTextReader tr = new XmlTextReader("HeadCount.xml"); XmlValidatingReader vr = new XmlValidatingReader(tr); vr.Schemas.Add("xsdHeadCount", "HeadCount.xsd"); vr.ValidationType = ValidationType.Schema; vr.ValidationEventHandler += new ValidationEventHandler (ValidationHandler); while(vr.Read()); Console.WriteLine("Validation finished"); >public static void ValidationHandler(object sender, ValidationEventArgs args) < Console.WriteLine("***Validation error"); Console.WriteLine("\tSeverity:", args.Severity); Console.WriteLine("\tMessage :", args.Message); > > > 

Ниже описано содержимое проверяемого входного файла HeadCount.xml.

  Waldo Pepper Red Pepper  

Ниже описано содержимое проверяемого файла XML-схемы HeadCount.xsd.

Следующий пример кода создает XmlValidatingReader, принимающий XmlTextReader. Входной файл sample4.xml проверяется по схеме XML sample4.xsd.

Dim tr As New XmlTextReader("sample4.xml") Dim vr As New XmlValidatingReader(tr) vr.ValidationType = ValidationType.Schema vr.Schemas.Add("datatypesTest", "sample4.xsd") AddHandler vr.ValidationEventHandler, AddressOf ValidationCallBack While vr.Read() Console.WriteLine("NodeType: NodeName: ", vr.NodeType, vr.Name) End While 
XmlTextReader tr = new XmlTextReader("sample4.xml"); XmlValidatingReader vr = new XmlValidatingReader(tr); vr.ValidationType = ValidationType.Schema; vr.Schemas.Add("datatypesTest", "sample4.xsd"); vr.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); while(vr.Read()) < Console.WriteLine("NodeType: NodeName: ", vr.NodeType, vr.Name); > 

Далее приведено содержимое проверяемого входного файла sample4.xml.

Далее приведено содержимое файла схемы XML sample4.xsd, по которому будет выполнена проверка.

См. также

  • XmlParserContext
  • XmlValidatingReader.ValidationEventHandler
  • XmlValidatingReader.Schemas
  • Компиляция схемы XmlSchemaCollection

Совместная работа с нами на GitHub

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

Обратная связь

Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.

Отправить и просмотреть отзыв по

Дополнительные ресурсы

Значок отказа согласно Закону Калифорнии о защите конфиденциальности потребителей (CCPA)

  • Светлая
  • Темная
  • Высокая контрастность
  • Предыдущие версии
  • Блог
  • Участие в доработке
  • Конфиденциальность
  • Условия использования
  • Товарные знаки
  • © Microsoft 2024

Проверка по XML-схеме (XSD) с помощью XmlSchemaCollection

Объект XmlSchemaCollection можно использовать для проверки XML-документа по схемам на языке XSD. Объект XmlSchemaCollection повышает производительность за счет сохранения схем в коллекции, чтобы они не загружались в память при каждой проверке. Если схема существует в коллекции схем, для ее поиска в коллекции используется атрибут schemaLocation .

Класс XmlSchemaCollection устарел и заменен классом XmlSchemaSet. Дополнительные сведения о классе XmlSchemaSet см. в руководстве по использованию XmlSchemaSet для компиляции схемы.

В следующем примере показан корневой элемент файла данных.

В этом примере атрибут targetNamespace имеет значение urn:bookstore-schema , которое является тем же пространством имен, которое используется при добавлении схемы в коллекцию XmlSchemaCollection.

Следующий пример кода добавляет схему XML в коллекцию XmlSchemaCollection.

Dim xsc As New XmlSchemaCollection() ' XML Schema. xsc.Add("urn:bookstore-schema", schema) reader = New XmlTextReader(filename) vreader = New XmlValidatingReader(reader) vreader.Schemas.Add(xsc) 
XmlSchemaCollection xsc = new XmlSchemaCollection(); // XML Schema. xsc.Add("urn:bookstore-schema", schema); reader = new XmlTextReader (filename); vreader = new XmlValidatingReader (reader); vreader.Schemas.Add(xsc); 

В основном атрибут targetNamespace используется при добавлении свойства namespaceURI в методе Add коллекции XmlSchemaCollection. Перед добавлением схемы в коллекцию XmlSchemaCollection можно указать ссылку со значением NULL. Для схем без пространства имен следует использовать пустую строку («»). В коллекции XmlSchemaCollection может быть только одна схема без пространства имен.

Следующий пример кода добавляет схему XML HeadCount.xsd в коллекцию XmlSchemaCollection и проверяет файл HeadCount.xml.

Imports System Imports System.IO Imports System.Xml Imports System.Xml.Schema Namespace ValidationSample Class Sample Public Shared Sub Main() Dim tr As New XmlTextReader("HeadCount.xml") Dim vr As New XmlValidatingReader(tr) vr.Schemas.Add("xsdHeadCount", "HeadCount.xsd") vr.ValidationType = ValidationType.Schema AddHandler vr.ValidationEventHandler, AddressOf ValidationHandler While vr.Read() End While Console.WriteLine("Validation finished") End Sub ' Main Public Shared Sub ValidationHandler(sender As Object, args As ValidationEventArgs) Console.WriteLine("***Validation error") Console.WriteLine("Severity:", args.Severity) Console.WriteLine("Message:", args.Message) End Sub ' ValidationHandler End Class ' Sample End Namespace ' ValidationSample 
using System; using System.IO; using System.Xml; using System.Xml.Schema; namespace ValidationSample < class Sample < public static void Main() < XmlTextReader tr = new XmlTextReader("HeadCount.xml"); XmlValidatingReader vr = new XmlValidatingReader(tr); vr.Schemas.Add("xsdHeadCount", "HeadCount.xsd"); vr.ValidationType = ValidationType.Schema; vr.ValidationEventHandler += new ValidationEventHandler (ValidationHandler); while(vr.Read()); Console.WriteLine("Validation finished"); >public static void ValidationHandler(object sender, ValidationEventArgs args) < Console.WriteLine("***Validation error"); Console.WriteLine("\tSeverity:", args.Severity); Console.WriteLine("\tMessage :", args.Message); > > > 

Ниже описано содержимое проверяемого входного файла HeadCount.xml.

  Waldo Pepper Red Pepper  

Ниже описано содержимое проверяемого файла XML-схемы HeadCount.xsd.

Следующий пример кода создает XmlValidatingReader, принимающий XmlTextReader. Входной файл sample4.xml проверяется по схеме XML sample4.xsd.

Dim tr As New XmlTextReader("sample4.xml") Dim vr As New XmlValidatingReader(tr) vr.ValidationType = ValidationType.Schema vr.Schemas.Add("datatypesTest", "sample4.xsd") AddHandler vr.ValidationEventHandler, AddressOf ValidationCallBack While vr.Read() Console.WriteLine("NodeType: NodeName: ", vr.NodeType, vr.Name) End While 
XmlTextReader tr = new XmlTextReader("sample4.xml"); XmlValidatingReader vr = new XmlValidatingReader(tr); vr.ValidationType = ValidationType.Schema; vr.Schemas.Add("datatypesTest", "sample4.xsd"); vr.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); while(vr.Read()) < Console.WriteLine("NodeType: NodeName: ", vr.NodeType, vr.Name); > 

Далее приведено содержимое проверяемого входного файла sample4.xml.

Далее приведено содержимое файла схемы XML sample4.xsd, по которому будет выполнена проверка.

См. также

  • XmlParserContext
  • XmlValidatingReader.ValidationEventHandler
  • XmlValidatingReader.Schemas
  • Компиляция схемы XmlSchemaCollection

Совместная работа с нами на GitHub

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

Обратная связь

Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.

Отправить и просмотреть отзыв по

Дополнительные ресурсы

Значок отказа согласно Закону Калифорнии о защите конфиденциальности потребителей (CCPA)

  • Светлая
  • Темная
  • Высокая контрастность
  • Предыдущие версии
  • Блог
  • Участие в доработке
  • Конфиденциальность
  • Условия использования
  • Товарные знаки
  • © Microsoft 2024

Полное руководство по XSD: что такое схемы XML и как ими пользоваться

Что такое xsd полное руководство по схемам XML

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

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

Каждый элемент и атрибут в XSD-схеме должен иметь определенный тип данных. Системные типы данных включают такие, как строка (string), целое число (integer), десятичное число (decimal) и др. Кроме того, возможно создание пользовательских типов данных путем определения ограничений и правил для значений элементов и атрибутов.

Определение схем XML

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

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

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

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

Преимущества схем XML:
1. Возможность валидации XML-документов
2. Определение разрешенных элементов и атрибутов
3. Контроль типов данных и их правильность
4. Гибкость и мощность в определении структуры данных

Преимущества использования схем XML

1. Валидация и верификация данных

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

2. Облегчение разработки и сопровождения

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

3. Обеспечение совместимости и интеграции

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

4. Повторное использование и расширяемость

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

5. Улучшение безопасности и контроля данных

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

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

Структура схемы XML

Структура схемы XML состоит из нескольких основных элементов:

Элемент Описание
xs:schema Корневой элемент схемы XML. Определяет пространство имен схемы и содержит все остальные элементы.
xs:element Определяет элементы, которые могут присутствовать в XML-документе.
xs:complexType Определяет сложные типы данных, которые могут содержать другие элементы и атрибуты.
xs:simpleType Определяет простые типы данных, такие как числа, строки и перечисления.
xs:attribute Определяет атрибуты, которые могут присутствовать в элементе XML.
xs:restriction Ограничивает допустимые значения элемента или атрибута.

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

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

Элементы и атрибуты

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

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

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

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

Типы данных

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

  • Строка (string) — используется для хранения текстовых данных, которые могут содержать любые символы.
  • Целое число (integer) — используется для хранения целочисленных значений.
  • Десятичное число (decimal) — используется для хранения десятичных чисел с фиксированной точностью.
  • Логическое значение (boolean) — используется для хранения значений «true» или «false».
  • Дата и время (dateTime) — используется для хранения даты и времени.
  • Перечисление (enumeration) — используется для представления ограниченного набора значений.

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

Ограничения и правила

С помощью схемы XML можно определить:

  • Набор элементов, которые могут присутствовать в документе;
  • Типы данных, которые могут быть использованы для элементов;
  • Порядок элементов в документе;
  • Ограничения на значения элементов.

Ограничения в схеме XML определяют, какие значения могут принимать элементы или атрибуты. Например, можно задать, что элемент «возраст» может содержать только целые числа от 0 до 150.

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

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

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

Примеры использования схем XML

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

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

2. Обеспечение согласованности данных: Схемы XML могут использоваться для обеспечения согласованности данных в различных приложениях. Например, если у вас есть несколько служб, которые обмениваются данными в формате XML, с помощью схем XML можно определить общую структуру данных, которая будет использоваться всеми службами. Это гарантирует, что данные будут однозначно интерпретироваться другими приложениями.

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

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

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

Валидация XML-документов

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

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

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

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

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

Вопрос-ответ:

Что такое XSD?

XSD (XML Schema Definition) — это язык, используемый для определения структуры и формата XML-документов.

Зачем нужны XSD-схемы?

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

Как создать XSD-схему?

Для создания XSD-схемы можно воспользоваться текстовым редактором и написать схему вручную, либо использовать специальные инструменты, такие как XML Spy или Altova XMLSpy, которые позволяют создавать схему визуально, путем перетаскивания элементов и связей.

Как проверить XML-документ на соответствие XSD-схеме?

Существуют различные способы проверки XML-документа на соответствие XSD-схеме. Например, можно использовать встроенные инструменты валидации, предоставляемые различными языками программирования, такими как Java или C#. Также можно воспользоваться онлайн-сервисами, которые позволяют загрузить XSD-схему и XML-документ для проверки.

Какие основные элементы могут содержаться в XSD-схеме?

Основными элементами XSD-схемы являются: элементы (element), атрибуты (attribute), типы данных (simpleType, complexType), ограничения (restriction), выбор (choice), последовательность (sequence) и другие. Каждый элемент имеет свою роль и определяет различные аспекты структуры XML-документа.

Проверка по XML-схеме (XSD) с помощью XmlSchemaSet

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

Проверка XML-документов

Проверка XML-документов выполняется с помощью метода Create класса XmlReader. Чтобы выполнить проверку XML-документа, создайте объект XmlReaderSettings, содержащий схему XML, с помощью которой выполняется проверка XML-документа.

Отдельную схему или набор схем (например, класс XmlSchemaSet) можно добавить в класс XmlSchemaSet, передав ее в качестве параметра метода Add метод XmlSchemaSet. При проверке документа целевое пространство имен документа должно соответствовать целевому пространству имен схемы в наборе схем.

Далее приведен пример XML-документа.

  The Autobiography of Benjamin Franklin Benjamin Franklin  8.99  The Confidence Man Herman Melville  11.99  The Gorgias Plato  9.99   

Далее приведена схема, по которой проверяется XML-документ из примера.

В следующем примере кода приведенная выше схема добавляется к свойству Schemas объекта XmlReaderSettings. Объект XmlReaderSettings передается в качестве параметра в метод Create объекта XmlReader, который проверяет XML-документ.

Свойство ValidationType объекта XmlReaderSettings устанавливается в Schema , чтобы включить проверку XML-документа в методе Create объекта XmlReader. Обработчик ValidationEventHandler добавляется в объект XmlReaderSettings, чтобы обрабатывать все события Warning или Error, вызванные в результате ошибок, найденных при проверке XML-документа и схемы.

#using using namespace System; using namespace System::Xml; using namespace System::Xml::Schema; static void booksSettingsValidationEventHandler( Object^ /*sender*/, ValidationEventArgs^ e ) < if ( e->Severity == XmlSeverityType::Warning ) < Console::Write( L"WARNING: " ); Console::WriteLine( e->Message ); > else if ( e->Severity == XmlSeverityType::Error ) < Console::Write( L"ERROR: " ); Console::WriteLine( e->Message ); > > int main() < XmlReaderSettings^ booksSettings = gcnew XmlReaderSettings; booksSettings->Schemas->Add( L"http://www.contoso.com/books", L"books.xsd" ); booksSettings->ValidationType = ValidationType::Schema; booksSettings->ValidationEventHandler += gcnew ValidationEventHandler( booksSettingsValidationEventHandler ); XmlReader^ books = XmlReader::Create( L"books.xml", booksSettings ); while ( books->Read() ) <> return 0; > 
using System; using System.Xml; using System.Xml.Schema; class XmlSchemaSetExample < static void Main() < XmlReaderSettings booksSettings = new XmlReaderSettings(); booksSettings.Schemas.Add("http://www.contoso.com/books", "books.xsd"); booksSettings.ValidationType = ValidationType.Schema; booksSettings.ValidationEventHandler += booksSettingsValidationEventHandler; XmlReader books = XmlReader.Create("books.xml", booksSettings); while (books.Read()) < >> static void booksSettingsValidationEventHandler(object sender, ValidationEventArgs e) < if (e.Severity == XmlSeverityType.Warning) < Console.Write("WARNING: "); Console.WriteLine(e.Message); >else if (e.Severity == XmlSeverityType.Error) < Console.Write("ERROR: "); Console.WriteLine(e.Message); >> > 
Imports System.Xml Imports System.Xml.Schema Class XmlSchemaSetExample Shared Sub Main() Dim booksSettings As XmlReaderSettings = New XmlReaderSettings() booksSettings.Schemas.Add("http://www.contoso.com/books", "books.xsd") booksSettings.ValidationType = ValidationType.Schema AddHandler booksSettings.ValidationEventHandler, New ValidationEventHandler(AddressOf booksSettingsValidationEventHandler) Dim books As XmlReader = XmlReader.Create("books.xml", booksSettings) While books.Read() End While End Sub Shared Sub booksSettingsValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs) If e.Severity = XmlSeverityType.Warning Then Console.Write("WARNING: ") Console.WriteLine(e.Message) ElseIf e.Severity = XmlSeverityType.Error Then Console.Write("ERROR: ") Console.WriteLine(e.Message) End If End Sub End Class 

См. также

  • XmlSchemaSet для компиляции схемы
  • Работа с XML-схемами

Совместная работа с нами на GitHub

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

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

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