В лекции 2 вы узнали, что XML-документ состоит из двух основных частей: пролога и элемента Документ (корневого элемента). Помимо этого, вслед за элементом Документ корректно сформированный XML-документ может содержать комментарии, инструкции по обработке, а также пробелы. На рисунке 3.1 приведен пример корректно сформированного XML-документа, отражающий различные части документа и включения, которые вы можете добавлять в каждую из частей.
(рис 3.1) В листинге 3.1 представлена полная версия документа для данного примера.
<?xml version='1.0' standalone='yes' ?>
<!-- File Name: Parts.xml -->
<?xml-stylesheet type="text/css" href="Inventory01.css"?>
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK>
<TITLE>The Legend of Sleepy Hollow</TITLE>
<AUTHOR>Washington Irving</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>98</PAGES>
<PRICE>$2.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Marble Faun</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Portrait of a Lady</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>256</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
<BOOK>
<TITLE>The Turn of the Screw</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>384</PAGES>
<PRICE>$3.35</PRICE>
</BOOK>
</INVENTORY>
<!-- Comments, processing instructions, and white space
can also appear after the document element. -->
<?MyApp Parm1="value 1" Parm2="value 2" ?>
Номер версии в XML-объявлении в начале пролога документа может быть заключен как в одинарные, так и в двойные кавычки. Строки в кавычках в XML-разметке – носят название литерал. Таким образом, обе приведенные ниже записи являются допустимыми:
<?xml version='1.0'?>
<?xml version="1.0"?>
XML-объявление в примере (см. лекции 6.)
В рассматриваемом примере имеется комментарий в прологе, а также другой комментарий, следующий за элементом Документ. (Подробнее о комментариях вы узнаете в лекции 4.)
Документ содержит две пустые строки в прологе и две пустые строки в разделе, следующем за элементом Документ. Пустая строка состоит из одного или нескольких пробелов, символа табуляции, возврата каретки или перевода строки. Чтобы улучшить внешний вид и восприятие XML-документа, вы можете свободно добавлять пробелы и переводы строк между элементами XML-разметки – такими как начальные и конечные теги, комментарии и инструкции по обработке – а также во многих случаях внутри
В нашем примере имеется одна инструкция по обработке в прологе, а также другая инструкция по обработке в разделе, следующем после элемента Документ. (Об инструкциях по обработке речь пойдет в лекции 4.)
Наконец, документ включает в себя
Примечание.
Валидный документ должен содержать один дополнительный компонент, не включенный в листинг рассматриваемого в примере документа:объявление типа документа , которое может быть помещено в любое место внутри пролога, но вне другихэлементов разметки и после XML-объявления.Объявление типа документа задает структуру валидного XML-документа. (Подробнее об этом вы узнаете в лекции 5.)
Пролог рассматриваемого XML-документа (см. листинг 3.1) содержит примеры каждого из разрешенных внутри пролога включений. Заметим, однако, что все эти включения не являются обязательными (хотя в спецификации XML заявлено, что вам "следует" включать XML-объявление). Следовательно, и сам пролог является необязательным, что подтверждается следующим минимальным документом, который содержит только элемент Документ, в соответствии с XML-стандартом для корректно сформированного документа.
<
B Internet Explorer 5 этот документ будет отображен, как показано на рисунке 3.2.
(рис 3.2) Элементы в XML-документе содержат фактическую информацию, имеющуюся в документе (для листинга 3.1, например, это названия книг, фамилии авторов, цена и т. д.), а также отражают логическую структуру информации.
Элементы организованы в иерархическую древовидную структуру, в которой одни элементы вложены в другие. Документ должен иметь один и только один элемент верхнего уровня – элемент Документ, или корневой элемент – а все другие элементы вложены в него. Представленный ниже XML-документ является корректно сформированным.
<?xml version="1.0" encoding="windows-1251" ?>
<!--Корректно сформированный XML-документ.-->
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
</INVENTORY>
А вот следующий документ не является корректно сформированным.
<?xml version="1.0" encoding="windows-1251" ?>
<!--Это НЕ корректно сформированный документ.-->
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
Элементы также должны быть правильно вложены. При этом если элемент (ограниченный начальным и конечным тегами) начинается внутри другого элемента, то он должен и заканчиваться внутри того же элемента. Например, эти элементы являются корректно сформированными:
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
</BOOK>
В то же время эти элементы не являются корректно сформированными:
<!-- НЕ корректно сформированный документ.--> <BOOK><TITLE>The Adventures of Huckleberry Finn</BOOK></TITLE>
Примечание. Элемент, который содержит один или более вложенных элементов (например,
BOOKв листинге 3.1), называется родительским элементом. Элемент, содержащийся непосредственно внутри родительского элемента (например,TITLEвнутриBOOK), называется дочерним элементом, субэлементом, или вложенным элементом.
Элемент обычно состоит из начального тега, содержимого и конечного тега, как показано на рисунке 3.3.
(рис 3.3) В отличие от HTML, XML требует наличия как начального, так и конечного тега. (Единственным исключением является элемент без содержимого, для которого вы можете использовать специальный тег пустого элемента, о котором пойдет речь далее в этой лекции.)
Имя, которое содержится в стартовой позиции начального тега и в конечном теге ( TITLE в нашем примере), называется типом или родовым идентификатором элемента (GI). Имя элемента идентифицирует особый тип или класс элемента, а не собственно элемент. Таким образом, документ может содержать более одного элемента с одинаковыми именами типа (например, элементы BOOK или TITLE в листинге 3.1).
При добавлении элемента в XML-документ вы можете выбрать любое имя типа по вашему желанию, руководствуясь при этом следующими правилами:
Ниже приведены примеры правильного задания имен типов элементов.
Part _lstPlace A B-SECTION Street.Address.1
Следующие имена использовать недопустимо:
1stPlace <!-- В качестве первого символа нельзя использовать цифру --> B Section <!-- Пробел внутри имени не разрешается --> B/Section <!-- Косая черта внутри имени не разрешается --> :Chapter <!-- Двоеточие нельзя использовать в качестве первого символа --> A:Section <!-- В IE5 допускается, только если вы объявили А как пространство имен -->
Примечание. В соответствии с XML-спецификацией двоеточие (:) в имени элемента зарезервировано для задания пространства имен. Пространства имен дают возможность дифференцировать элементы с одними и теми же именами. Этот вопрос будет обсуждаться в лекции 7 в разделе "Вставка HTML-элементов в XML-документы и использование пространств имен". Internet Explorer 5 разрешает вам использовать двоеточие в имени элемента только в том случае, если оно следует за пространством имен, объявленным вами в документе. Например, запись
A:Sectionбудет корректной, только если вы объявилиАкак пространство имен.
Имя, записанное в начальном теге, должно в точности соответствовать имени в конечном теге, включая регистр, в котором набраны буквы. Так, следующий элемент является некорректным.
<Title>Chapter one </title> <!-- НЕ корректно. -->
Соблюдение регистра существенно для имен элементов, как и для всего текста в описании разметки. Так, тип элемента с именем не будет эквивалентен типу или .
Содержимым элемента считается текст, расположенный между начальным и конечным тегами. Вы можете использовать в качестве содержимого элемента следующие типы сообщений:
Ниже приведен пример содержимого элемента, состоящего из сочетания символьных данных и вложенного элемента, как показано на рисунке 3.6.
(рис 3.6) При добавлении в элемент символьных данных вы можете использовать любые символы, за исключением левой угловой скобки (<), амперсенда () и строки ]]>.
Примечание. Синтаксический анализатор XML сканирует символьные данные элемента для XML-разметки. Вы не можете использовать левую угловую скобку (<), амперсенд () или строку
]]>в составе символьных данных, поскольку анализатор может интерпретировать < как начало вложенного элемента, как начало ссылки на примитив или символ, а]]>как окончание разделаCDATA. (О ссылках на примитивы и ссылках на символы пойдет речь в лекции 6; о разделеCDATAв лекции 4). Если вы хотите использовать символы < или как часть символьных данных, вам необходимо воспользоваться разделомCDATA. Вы также можете использовать любые символы (в том числе те, которых нет на клавиатуре), воспользовавшись ссылкой на символ. Некоторые символы (например, < или ) вы можете вставлять с использованием предопределенных ссылок на общие примитивы.
Вы также можете помещать пустой элемент – т.е. элемент, не имеющий содержимого – в ваш документ. Пустой элемент создается путем размещения конечного тега сразу же после начального тега. Например:
<HR></HR>
Либо вы можете использовать специальный тег пустого элемента:
<HR />
Обе эти нотации являются эквивалентными.
Поскольку пустой элемент не имеет содержимого, у вас может возникнуть вопрос о его предназначении. Здесь есть два варианта:
BR, который является указанием браузеру вставить разрыв строки, а также пустой элемент HR, указывающий на вставку горизонтальной разделительной линии. Другими словами, само присутствие элемента с определенным именем – без какого-либо содержимого – может послужить важной информацией для приложения;IMG (изображение), содержащий атрибуты, которые сообщают процессору, где искать графический файл и как его отобразить.Совет. Таблица каскадных стилей может использовать пустой элемент для отображения рисунка, подробнее об этом вы можете узнать в лекции 7. В лекции 8 вы узнаете, как применять связывание данных для доступа к атрибутам пустого или непустого элемента. В лекции 9 вы научитесь использовать HTML-сценарии, а в лекции 10 –
XSL -таблицы стилей, для доступа к элементам и их атрибутам, и для последующего выполнения соответствующих действий.
<?xml version="1.0" encoding="windows-1251" ?>
<!-- File Name: Inventory03.xml -->
<?xml-stylesheet type="text/css" href="Inventory02.css"?>
<INVENTORY>
<!--Каталог избранных произведений
американской литературы 19-го века -->
<BOOK>
<COVER_IMAGE Source="Huck.gif" />
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<COVER_IMAGE Source="Leaves.gif" />
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK>
<COVER_IMAGE Source="Faun.gif" />
<TITLE>The Marble Faun</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK>
<COVER_IMAGE Source="Moby.gif" />
<TITLE>
Moby-Dick
<SUBTITLE>Or, the Whale</SUBTITLE>
</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
</INVENTORY>
Примечание. Созданный вами документ использует CSS с именем Inventory02.css, который вы создали в предыдущем упражнении. Проверьте, чтобы файл с этой таблицей стилей был в той же папке, что файл Inventory03.xml.
Документ содержит следующие типы элементов:
INVENTORY ). Обратите внимание, что браузер не отображает текст комментария;COVER_IMAGE в начале каждого элемента BOOK. Назначение этого элемента – указать XML-приложению отобразить определенную картинку для книжной обложки. (Атрибут Source содержит имя файла картинки.) Чтобы иметь возможность использовать такой элемент, вам потребуется отобразить XML-документ на HTML-странице посредством сценария, либо с помощью TITLE для Moby-Dick), который содержит символьные данные и дочерний элемент ( SUBTITLE ). Заметим, что браузер отображает и символьные данные, и дочерний элемент в одной строке, и в одном и том же формате. (CSS-формат, назначенный элементу TITLE, наследуется элементом SUBTITLE .)В начальный тег элемента, либо в тег пустого элемента вы можете включить одно или несколько описаний атрибутов. Описание атрибута представляет собой пару имя – значение, связанную с данным элементом. Например, следующий элемент PRICE включает атрибут с именем Type, которому присвоено значение retail:
<PRICE Type="retail">$10.95</PRICE>
Следующий элемент BOOK включает два атрибута, Category и Display:
<BOOK Category="fiction" Display="emphasize">
<TITLE>The Marble Fauh</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
Следующий пустой элемент включает атрибут с именем Source, который указывает на имя файла, содержащего картинку, которую следует отобразить:
<COVER_IMAGE Source="Faun.gif" />
Задание атрибутов обеспечивает альтернативный способ включения информации в элемент. Обычно вы помещаете все относящиеся к элементу данные, которые хотите отобразить, внутри содержимого элемента. Атрибуты же используются для хранения различных свойств элемента, которые не обязательно будут отображены (например, категория, или указания по отображению). В спецификации XML не установлено строгих разграничений относительно типа информации, которую можно описывать с помощью атрибутов или внутри содержимого элемента.
Примечание. Когда вы отображаете XML-документ с использованием CSS-таблицы (данный метод будет обсуждаться в лекции 7), браузер не выводит атрибуты или их значения. Отображение же XML-документа с использованием связывания данных (см. лекцию 8), сценария для HTML-страницы (см. лекцию 9), либо
XSL -таблицы стилей (см. лекцию 10) дает вам возможность иметь доступ к атрибутам и их значениям, а также отображать значение или выполнять соответствующие действия.
Описание атрибута состоит из имени атрибута, вслед за которым идет знак равенства и значение атрибута. Вы можете выбрать любое имя атрибута, придерживаясь при этом следующих правил:
Например, следующие описания имен в стартовых тегах являются допустимыми:
<ANIMATION Filename="Waldo.ani"> <LIST _1stPlace="Sam"> <ENTRY Zip.Code="94941">
Приведенные ниже имена атрибутов недопустимы:
<!-- Дублирование имени атрибута внутри одного тега: -->
<ANIMATION Filename="Waldo1.ani" Filename="Waldo2.ani">
<LIST 1stPlace="Sam"> <!-- Первый символ не может быть цифрой -->
<ITEM A:Category="cookware"> <!--B IE5 допускается, только если вы объявили А
как пространство имен -->
Примечание. В соответствии с XML-спецификацией двоеточие (:) в имени атрибута зарезервировано для задания пространства имен. Пространства имен дают возможность дифференцировать элементы с одними и теми же именами; этот вопрос будет обсуждаться в лекции 7 в разделе "Вставка HTML-элементов в XML-документы и использование пространств имен." Internet Explorer 5 разрешает вам использовать двоеточие в имени атрибута только в том случае, если оно следует за пространством имен, объявленным вами в документе. Например, запись
A:Categoryбудет корректной только если вы объявилиАкак пространство имен.
Значение, которое вы присваиваете атрибуту, представляет собой группу символов, ограниченных кавычками, называемую также литералом. Вы можете присвоить атрибуту в качестве значения любой литерал, придерживаясь при этом следующих правил:
< (Синтаксический анализатор может воспринять этот символ как начало описания XML-разметки.), если это не ссылка на символ или примитив.Вы уже познакомились с правильными описаниями атрибутов. Ниже приведены неправильные описания:
<EMPLOYEE Status=""downsized""> <!-- Нельзя использовать символы-ограничители внутри строки. --> <ALBUM Type="<CD>"> <!-- Нельзя использовать символ < внутри строки --> <WEATHER Forecast="Cold Windy"> <!-- Нельзя использовать символ , если это не ссылка -->
Если вы хотите использовать двойные кавычки (") внутри значения атрибута, вам следует применить в качестве ограничителей одинарные кавычки ('), как показано в примере:
<EMPLOYEE Status='"downsized"'> <!-- Правильное значение атрибута. -->
Аналогично, чтобы включить одинарные кавычки в значение атрибута, следует использовать в качестве ограничителей двойные кавычки:
<CANDIDATE name="W.T. 'Bill' Bagley"> <!-- Правильное значение атрибута. -->
Совет. Вы можете избавиться от всех ограничений и вводить в имя атрибута любой символ, если воспользуетесь ссылкой на символ или – если это возможно – ранее определенной ссылкой на примитив общего назначения. О таких ссылках будет рассказано в лекции 6.
Если вы создаете корректно сформированный документ, не имеющий
<?xml version="1.0" encoding="windows-1251" ?>
<!-- File Name: Inventory04.xml -->
<?xml-stylesheet type="text/css" href="Inventory02.css"?>
<INVENTORY>
<BOOK Binding="mass market paperback">
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR Born="1835">Mark Twain</AUTHOR>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK Binding="hardcover">
<TITLE>Leaves of Grass</TITLE>
<AUTHOR Born="1819">Walt Whitman</AUTHOR>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK Binding="trade paperback">
<TITLE>The Marble Faun</TITLE>
<AUTHOR Born="1804">Nathaniel Hawthorne</AUTHOR>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK Binding="hardcover">
<TITLE>Moby-Dick</TITLE>
<AUTHOR Born="1819">Herman Melville</AUTHOR>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
</INVENTORY>
Примечание. Созданный вами документ использует CSS-таблицу с именем Inventory02.css, которую вы создали в предыдущем упражнении. Проверьте, что этот файл таблицы стилей находится в той же папке, что и файл Inventory04.xml.
Данный документ основан на документе
BOOK информация о виде переплета преобразована из содержимого (в форме вложенного элемента BINDING ) в атрибут с именем Binding. Это преобразование необходимо, если вы хотите хранить информацию о виде переплета, но не желаете ее показывать вместе с другой информацией о книге при представлении документа с использованием CSS-таблицы; (Посмотрите на рис. 3.11 и убедитесь, что Internet Explorer 5 не отобразил значения атрибута.)AUTHOR был добавлен атрибут с именем Born, содержащий дату рождения автора. Это пример малозначительной информации, которую вы хотели бы хранить, но отображать ее нет необходимости. Один из способов скрыть такую информацию – и объявить ее малозначительной – назначить ее в качестве значения атрибуту, а не размещать в содержимом элемента.Это только несколько из обширных возможностей применения атрибутов. Подробнее эти вопросы будут обсуждены в лекции 5.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.