
- •Д. Е. Турчин
- •Самостоятельная работа
- •Кемерово 2014
- •Предисловие
- •Самостоятельные практические работы
- •1. Основы создания xml-схем и проверки с их помощью документов xml
- •1.1. Цель и задачи работы
- •1.2. Основные теоретические сведения
- •1.2.1. Общие сведения о xml-схемах. Определение типа документа (dtd). Инструкции dtd Общие сведения о xml-схемах. Определение типа документа (dtd).
- •Объявления разметки dtd. Инструкции element и attlist.
- •Инструкция attlist.
- •1.2.2. Общие сведения о схеме xsd. Встроенные типы xsd. Связывание документа xml с xsd-схемой Общие сведения о схеме xsd.
- •Встроенные типы xsd.
- •Связывание документа xml с xsd-схемой.
- •1.2.3. Объявление элементов и их атрибутов в схеме xsd. Определение сложных типов xsd Объявление элементов и атрибутов в схеме xsd.
- •Определение сложных типов в схеме xsd.
- •Работа с xml-схемами в Visual Studio. Конструктор xml-схем.
- •1.2.4. Работа с xml-схемами на платформе .Net Framework Работа с xml-схемами на платформе .Net Framework.
- •1.3. Порядок выполнения работы
- •1.4. Контрольные вопросы
- •2. Основы использования порождающих шаблонов GoF в приложениях на языке c#
- •2.1. Цель и задачи работы
- •2.2. Основные теоретические сведения
- •2.2.1. Общие сведения о порождающих шаблонах GoF. Шаблон Фабричный метод Общие сведения о порождающих шаблонах GoF. Шаблон Фабричный метод.
- •Реализация шаблона Фабричный метод на языке c#.
- •2.2.2. Шаблон Абстрактная фабрика Шаблон Абстрактная фабрика.
- •Реализация шаблона Абстрактная фабрика на языке c#.
- •2.3. Порядок выполнения работы
- •2.4. Контрольные вопросы
- •3. Основы работы с базами данных при помощи Entity Framework
- •3.1. Цель и задачи работы
- •3.2. Основные теоретические сведения
- •3.2.1. Основные понятия
- •Цвета и кисти. Настройка кистей в Visual Studio.
- •Задание градиентных кистей.
- •4.2.2. Стили и шаблоны элементов управления wpf Общие сведения о стилях и шаблонах элементов управления wpf.
- •4.3. Порядок выполнения работы
- •4.4. Контрольные вопросы
- •Рекомендуемая литература Печатные издания.
- •Интернет-ресурсы.
- •Приложение п.1. Пример разработки xml-документа
- •П.2. Вопросы и задачи к экзамену Теоретические вопросы.
- •Практические задачи.
Связывание документа xml с xsd-схемой.
Документ, проверяемый с помощью схемы, также должен содержать объявление пространства имен. Пространство имен всегда указывается в корневом элементе XML-документа с помощью атрибута xmlns. По общему соглашению для этого пространства имен используется префикс xsi (XML-schema instance):
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
Схему документа можно указать прямо в документе. Это делается одним из двух способов:
Если элементы документа не принадлежат никакому пространству имен и записаны без префикса, то в корневом элементе документа записывается атрибут noNamespaceSchemaLocation, указывающий расположение файла со схемой в форме URI:
xsi:noNamespaceSchemaLocation="URI"
Если элементы документа относятся к некоторому пространству имен, то применяется атрибут schemaLocation корневого элемента. В этом атрибуте через пробел перечисляются пространство имён и расположение файла со схемой:
xsi:SchemaLocation="NameSpace URI" |
Пример XML-схемы на языке XSD приведён в листинге 1.3. а XML-документ, соответствующий данной схеме, представлен в листинге 1.4.
Листинг 1.3. Код XML-схемы на языке XSD (simple.xsd) |
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="order"> <xs:complexType> <xs:sequence> <xs:element name="good" minOccurs="1" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="amount" type="xs:int" /> <xs:element name="price"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="discount" type="xs:int" use="optional" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:integer" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> |
Листинг 1.4. Код документа XML, соответствующего схеме из листинга 1.3 |
<?xml version="1.0" encoding="utf-8"?> <order xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="H:\XSD\simple.xsd"> <good id="12503"> <name>Коробка конфет</name> <amount>2</amount> <price discount="15">123.50</price> </good> <good id="14097"> <name>Бутылка вина</name> <amount>1</amount> <price>210.00</price> </good> </order> |