Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 235

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 229 230 231 232 233 234 < 235 > 236 237 238 239 240 241 .. 404 >> Следующая


? Обладать одним и только одним корневым элементом

? Обладать закрывающими тегами для всех своих элементов

(за исключением случаев использования сокращенного синтаксиса, упоминавшегося выше)

? Не иметь перекрывающихся элементов — все дочерние элементы должны быть полностью вложенными в родительские

? Использовать только атрибуты, заключенные в кавычки

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

Однако XML-документы могут подчиняться всем этим правилам и прн этом все равно не быть допустимыми. Сам по себе XML не является языком программирования, это — стандарт для описания ХМL-приложений. Правильно оформленные XML-документы — это всего лишь документы, соответствующие стандарту XML; для того чтобы являться допустимыми, они, кроме того, должны подчиняться всем правилам, относящимся к данному XML-приложению. Не все анализаторы выполняют проверку допустимости; анализаторы, выполняющие такую проверку, называются анализаторами с проверкой допустимости.

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

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

XML поддерживает два различных способа определения того, какие элементы и атрибуты могут быть включены в документ и в каком порядке — Document Туре , Definitions (DTD — определение типа документа) и Schemas (схема). В опреде-

лениях типа документа используется синтаксис, отличный от XML синтаксиса, который был унаследован от прародителей XML и который теперь постепенно вытесняется схемами. DTD-определения не позволяют определять типы данных в элементах и атрибутах, поэтому они оказываются недостаточно гибкими и в контексте .NET Framework используются достаточно редко. Схемы оказываются более
506 J’.iaea 18

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

Схемы

В .NET поддерживаются два различных формата схем — XML Schema Definition Language (XSD — язык описания XML-схем) н XML-Data Reduced schemas (XDR — упрощенные схемы XML-данных). Схемы могут быть включены либо в состав самого XML-документа, либо храниться в виде отдельного файла. Эти два формата являются несовместимыми, и, для того чтобы воспользоваться любым из них, надо, действительно, очень хорошо знать XML. По этой причине мы не будем разбирать эти форматы подробно. С другой стороны, полезно уметь распознавать основные элементы схем, поэтому основные принципы построения схем будут объяснены. С этой целью мы рассмотрим пример XSD- и XDR-схем для некоторого простого ХМL-документа, в котором содержится основная информация о паре книг, вышедших в издательстве Wrox:

<?xml version="1.О*?>

<books>

<book>

<title>Beginning C#</title>

<author>Karli Watson</author>

<code>4982</code>

</book>

<book>

<title>Pro?essional Cl</title>

<author>Simon Robinson«/author>

<code>4990</code>

«/book>

</books>

XSD-схемы

Элементы, входящие в состав XSD-схем, должны принадлежать пространству имен 'http://www.w3.org/200l/XMLScheraa*. Если это пространство имен не будет объявлено, то элементы схем не будут распознаваться.

Чтобы привязать к документу XSD-схему, находящуюся в отдельном файле, необходимо в корневой элемент документа включить элемент schemalocation:

<?xml version*"I.0¦?>

¦ebooks achemalocation«*Eile: //C: \Caharp\xml\booke.xed1 >

</books>

Рассмотрим пример XSD-схемы:

«schema 3anlns="http: //www,w3 , org/2Q01/XMLSchema'>

«element name="books¦>

<complexType>

<choj.ce maxOccurs="unbounded">

«element name='book*>

<complexTyPe>

<sequence>

«element name="title" />

«element name="author¦ />

«element name="code" />

</se<iuence>

</complexType>

</element>
Доступ к данным пользователя

507

</choice>

•«/attribute name='schenialocation" />

</complexType>

</element>

</scheraa>

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

Вся схема целиком содержится внутри элемента с именем <schema> (с буквой s, набранной в нижнем регистре — не забывайте, что регистр имеет значение!). Все элементы, которые могут находиться внутри документа, должны представляться элементами <element*. У этого элемента имеется атрибут name, в котором хранится имя элемента. Если элемент может содержать в себе вложенные дочерние элементы, то необходимо для каждого нз них включить тегн <element> в элемент <сошр1ехТуре>. Внутри этого элемента можно определить, какнм образом должны располагаться дочерние элементы. Напрнмер, чтобы указать, что в элементе могут присутствовать дочерние элементы в произвольном порядке, следует использовать элемент <choice>, а для того чтобы указать, что дочерние элементы должны присутствовать в том же самом порядке, в котором они перечислены в схеме, необходимо использовать элемент <eequence>. Если некоторый элемент может появляться более одного раза {напрнмер, элемент <book>), то в родительский элемент следует включить атрибут maxOccurs. Если присвоить этому атрибуту значение 'unbounded' (“не ограничен"), то это будет означать, что дочернин элемент может встречаться произвольное количество раз. И, наконец, каждый атрибут должен представлен элементом <attribute>, включая использованный нами ранее атрибут schemaiocation, с помощью которого анализатору передается информация о местонахождении схемы. Этот элемент располагается в конце списка дочерних элементов.
Предыдущая << 1 .. 229 230 231 232 233 234 < 235 > 236 237 238 239 240 241 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.