- •1. Классификация форматов электронных изданий. Форматы текстовые и бинарные. Представление сред мультимедиа в электронных изданиях. Требования к форматам.
- •2. Подготовка электронных изданий в формате pdf. Структура документа в формате pdf — трейлер, таблица перекрестных ссылок.
- •3. Иерархическая структура объектов в формате pdf. Виды объектов. Объекты, определяющие вывод и форматирование текста.
- •4. Изменение структуры документа pdf при его последовательном редактировании.
- •5. Подготовка электронных изданий в формате DejaVu. Разделение изображения на слои: передний план, задний план и однобитовую маску. Использование текстового слоя. Создание гиперссылок.
- •6. Подготовка электронных изданий в формате rtf. Структура документа в формате rtf. Группировка символов.
- •7. Представление символов, входящих и не входящих в ascii в формате rtf.
- •8. Управляющие слова и управляющие символы в формате rtf. Задание параметров шрифта и типа выключки.
- •Xml документ состоит из пролога и коревого элемента.
- •10. Создание корректно сформированных xml-документов. Структура xml-документа. Пролог, корневой элемент.
- •11. Объявления xml-документов, инструкции по обработке, комментарии, разделы cdata. Требования к иерархии элементов. Атрибуты. Символьные данные.
- •1. Элементы
- •2. Комментарии
- •3. Инструкции обработки
- •4. Секция cdata
- •5 Требования к xml документу и его компонентам
- •12. Использование примитивов в xml-документах.
- •13. Определение типа документа dtd. Валидные xml-документы. Синтаксис dtd, объявления элементов и списков атрибутов.
- •14. Описание содержимого элементов в xml. Вложенные элементы и символьные данные. Типы атрибутов, значения по умолчанию.
- •Объявления атрибутов. Типы атрибутов, значения по умолчанию.
- •15. Пространства имен xml. Использование пространств имен, префиксы. Уникальные идентификаторы в форме url и urn.
- •16.Стандартные пространства имен. Использование элементов xhtml в xml-документах как пространство имен.
- •17. Описание структуры xml-документа при помощи xml Schema. Описание элементов, атрибутов, вложенных элементов и символьных данных. Число вхождений элементов.
- •1 Способ
- •2 Способ
- •18. Простые и комплексные типы в xml Schema. Типы атрибутов.
- •19. Сравнение dtd и xml Schema.
- •20. Визуальное представление xml-документов и таблицы стилей xsl. Структура xsl-документа, элементы пространств имен xsl и xhtml.
- •21. Шаблоны, образец в xsl. Документы с одним и с несколькими шаблонами.
- •22. Фильтрация и сортировка данных при помощи xsl.
- •23. Описание связей в xml при помощи технологии xLink. Простые связи. Связи поведения.
- •24. Расширенные связи в технологии xLink. Правила обхода между ресурсами.
16.Стандартные пространства имен. Использование элементов xhtml в xml-документах как пространство имен.
Есть еще один тип описания пространства имен, который может использоваться для ассоциирования идентификаторов пространств имен с именами элементов. Они известен как описание стандартного пространства имен, которое использует следующий синтаксис:
xmlns="<namespace identifier>"
Обратите внимание, что здесь нет префикса. Когда используется описание стандартного пространства имен, все неопределенные имена элементов автоматически ассоциируются с установленным идентификатором пространства имен. Однако описания стандартных пространств имен абсолютно никак не влияют на атрибуты. Единственный способ ассоциировать атрибут с идентификатором пространства имен — через префикс.
Рассмотрим следующий пример:
<d:student xmlns:d="http://www.develop.com/student"
xmlns="urn:foo" id="3235329"
>
<name>Jeff Smith</name>
<language xmlns="">C#</language>
<rating>35</rating>
</d:student>
Здесь "student" из пространства имен http://www.develop.com/student, а "name" и "rating" из стандартного пространства имен urn:foo. Атрибут id не принадлежит пространству имен, поскольку атрибуты автоматически не ассоциируются с идентификатором стандартного пространства имен.
Этот пример также иллюстрирует, что вы можете отменить объявление стандартного пространства имен, просто установив его идентификатор опять в пустую строку, как показано в элементе language (помните, что вы не можете делать этого с описаниями префиксов). В результате элемент language также не принадлежит пространству имен.
Синтаксис стандартных пространств имен был разработан для удобства, но принес больше вреда, чем пользы. Обычно трудности вызывает тот факт, что элементы и атрибуты по-разному интерпретируются и не сразу видно, что вложенным элементам присвоен идентификатор стандартного пространства имен. Тем не менее, в конце концов, выбор между префиксами и стандартными пространствами имен — это, преимущественно, вопрос стиля, за исключением случаев, когда начинают действовать атрибуты.
Использование элементов XHTML в XML-документах как пространство имен.
Корневой элемент документа обязан обозначить пространство имён XHTML путём использования атрибута xmlns[XMLNAMES]. Пространство имён XHTML определено в http://www.w3.org/1999/xhtml.
17. Описание структуры xml-документа при помощи xml Schema. Описание элементов, атрибутов, вложенных элементов и символьных данных. Число вхождений элементов.
XML Schema – язык описания структуры XML-документа.
Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.
Недостатки XML DTD перед XML Schema
Отличный от XML синтаксис языка. То есть, DTD не является XML. В связи с этим могут возникать разнообразные проблемы с кодировкой и верификацией XML-документов.
Нет проверки типов данных. В XML DTD существует лишь один тип данных – строка. В связи с этим, например, если в числовом поле будет текст, документ все равно пройдет верификацию, так как XML DTD не может проверить тип данных.
Нельзя поставить в соответствие одному XML-документу больше одного DTD описания. То есть, верифицировать документ можно лишь одним DTD описанием. Если их несколько, то придется переделывать описания и совмещать все в одном файле, что очень неудобно.
Если быть кратким, то XML Schema делает следующее:
Описывает названия элементов и атрибутов (словарь).
Описывает взаимосвязь между элементами и атрибутами, а также их структуру (модель содержания).
Описывает типы данных.
Особенностью XML Schema является то, что она описывает не сам документ, а пространство имен. В связи с этим чаще всего никаких упоминаний о ней в документе нет. Обработчик сам ставит в соответствие нужную вам схему без использования каких-либо инструкций в XML-документе.
На случай, если обработчик не знает где лежит схема, мы можем указать, где ее искать. Делается это при помощи специального атрибута «schemaLocation»: xsi:schemaLocation="http://www.site.com/product.xsd"
На данный момент при помощи схем можно описывать практически все. То есть, схема – это универсальный способ описания грамматики данных, который может применяться не только для верификации XML-документов, но и описания баз данных и т.д. Таким образом, область применения схем на данный момент очень широкая.
Пример XML Schema для валидации XML-документа.
1 |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
2 |
<xs:element name="книга" type="Книга" /> |
3 |
<xs:complexType name="Книга"> |
4 |
<xs:sequence> |
5 |
<xs:element name="название" type="xs:string" /> |
6 |
<xs:element name="цена" type="xs:decimal" /> |
7 |
</xs:sequence> |
8 |
</xs:complexType> |
9 |
</xs:schema> |
При помощи данной схемы можно проверить XML-документ следующего содержания.
1 |
<книга xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "book.xsd"> |
2 |
<название>Основы XML</название> |
3 |
<цена>300</цена> |
4 |
</книга> |
Для создания XML схем используется уже известный нам XML. Единственное отличие здесь в том, что в XML Schema уже определены элементы, в отличие от обычного XML. В связи с этим используются пространства имен. В данном случае обязательным пространством имен будет «http://www.w3.org/2001/XMLSchema», которое будет задаваться при помощи префиксов «xs».
Можно использовать как префиксы пространств имен, так и задавать пространство имен для корневого элемента. Как таковой разницы здесь нет. Каждый сам решает, как ему поступать в данной ситуации. Обычно используются префиксы «xs» или «xsd».
Расшифровка элементов в примере:
<xs:element name="книга" type="Книга" /> — объявляем элемент «книга» с типом «Книга».
<xs:complexType name="Книга"> — объявляем комплексный тип с именем «Книга» (xs:complexType – может содержать в себе вложенные элементы).
<xs:sequence> — объявление вложенности. То есть, тип будет содержать вложенные элементы.
<xs:element name="название" type="xs:string" /> — объявляем элемент с именем «название» (стандартного типа «строка» — xs:string).
<xs:element name="цена" type="xs:decimal" /> — объявляем элемент с именем «цена» (стандартного типа «число» — xs:decimal).
Описание элементов в XML Schema
Элементы бывают простыми и сложными.
Простые элементы не могут иметь атрибуты и содержимое смешанного типа, а сложные – могут. Содержимое смешанного типа – это возможность использовать внутри элемента дочерние элементы и текст (смешанное содержимое) .Простые определяются с помощью вложенного элемента <xs:simpleType>, сложные - <xs:complexType>.
Последовательность элементов и типов не играет роли. Схема будет работать в любом случае.
Элементы обладают обязательными атрибутами name и type, определяющими имя элемента и его тип. Например: <xs:element name="computer" type="xs:string">
В схемах XML поддерживаются все наиболее распространенные в языках программирования типы данных, а именно:
xs:string – строковый (символьный) тип
xs:decimal - десятичное число
xs:boolean – true/false
xs:float – число с плавающей точки
xs:date (1950-03-26) - дата
xs:time (15:30:01) - время
и др.
Второй способ написания XML Schema (первый в примере выше), который основывается на том, чтобы описывать тип сразу внутри элемента. Данный способ подойдет в том случае, если вы не планируете использовать одно и то же описание для разных элементов.
01 |
<?xml version="1.0" encoding="utf-8" ?> |
02 |
<xs:schema |
03 |
xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
04 |
<xs:element name="root"> |
05 |
<xs:complexType> |
06 |
<xs:sequance> |
07 |
<xs:element name="name" type="xs:string" /> |
08 |
<xs:element name="age" type="xs:integer" /> |
09 |
</xs:sequance> |
10 |
</xs:complexType> |
11 |
</xs:element> |
12 |
</xs:schema> |
Элемент объявляется при помощи специальной конструкции «element» с использованием соответствующего префикса. В данном случае мы определяем элемент с названием «root» без указания типа (type), так как он будет описан внутри элемента. То есть, есть два способа описания элементов.
