voliuf.narod.ru

главная

друзья

помощь сайту

Основы XML

Бесплатные учебники по темам

Партнерская программа

1.Знакомство с XML

2.Создание и отображение вашего первого XML-документа

3.Создание корректно сформированных XML-документов

4.Добавление комментариев, инструкций по обработке и разделов CDATA

5.Создание валидных XML-документов

6.Определение и использование примитивов

7.Отображение XML-документов с использованием таблиц каскадных стилей

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

9.Отображение XML-документов с использованием сценариев объектной модели документа


10.Отображение XML-документов с использованием XSL-таблиц стилей

 
 
Основы XML
3.Создание корректно сформированных XML-документов
  
Составные части корректно сформированного XML-документа

В лекции 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" ?>
     

Листинг 3.1. Parts.xml

Номер версии в XML-объявлении в начале пролога документа может быть заключен как в одинарные, так и в двойные кавычки. Строки в кавычках в XML-разметке – носят название литерал. Таким образом, обе приведенные ниже записи являются допустимыми:

 

<?xml version='1.0'?>

 

<?xml version="1.0"?>

 

XML-объявление в примере (см. Листинг 3.1) также включает в себя объявление документа автономным (standalone=’yes’). Это объявление может использоваться в некоторых XML-документах с целью упростить обработку документа. (Об объявлении документа автономным будет рассказано в лекции 6.)

 

В рассматриваемом примере имеется комментарий в прологе, а также другой комментарий, следующий за элементом Документ. (Подробнее о комментариях вы узнаете в лекции 4.)

 

Документ содержит две пустые строки в прологе и две пустые строки в разделе, следующем за элементом Документ. Пустая строка состоит из одного или нескольких пробелов, символа табуляции, возврата каретки или перевода строки. Чтобы улучшить внешний вид и восприятие XML-документа, вы можете свободно добавлять пробелы и пустые строки между элементами XML-разметки – такими как начальные и конечные теги, комментарии и инструкции по обработке – а также во многих случаях внутри элементов разметки – например, пробел между "yes" и ? в конце XML-объявления в рассматриваемом примере. Процессор просто игнорирует пропуски, если только они не находятся внутри элемента, непосредственно содержащего символьные данные. (В этом случае процессор передает пропуски приложению как часть символьных данных элемента.)

 

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

 

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

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

Наименьший XML-документ

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

 

<minimal>A minimalist document.</minimal>

 

B Internet Explorer 5 этот документ будет отображен, как показано на рисунке 3.2.

 

 


Рис. 3.2. 

 

 

Добавление элементов в документ

Элементы в XML-документе содержат фактическую информацию, имеющуюся в документе (для листинга 3.1, например, это названия книг, фамилии авторов, цена и т. д.), а также отражают логическую структуру информации.

 

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

 
<?xml version="1.0"?>
<!--Корректно сформированный 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"?>
<!--Это НЕ корректно сформированный документ.-->
<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-документ вы можете выбрать любое имя типа по вашему желанию, руководствуясь при этом следующими правилами:

 
  • имя должно начинаться с буквы или с символа подчеркивания (_), после чего могут идти буквы, цифры, символы точки (.), тире (–) или подчеркивания;
  • в спецификации XML указано, что имена типов элементов, которые начинаются с префикса "xml" (при любом сочетании строчных или прописных букв), "зарезервированы для стандартных имен". Хотя Internet Explorer 5 не слишком требователен в этом отношении, лучше не использовать этот префикс, дабы избежать будущих неприятностей.
 

Ниже приведены примеры правильного задания имен типов элементов.

 
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>    <!-- НЕ корректно. -->
     

Соблюдение регистра существенно для имен элементов, как и для всего текста в описании разметки. Так, тип элемента с именем Ace не будет эквивалентен типу ace или ACE.

 

Типы содержимого элемента

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

 
  • вложенные элементы – в Листинге 3.1 элемент INVENTORY и элемент BOOK имеют в своем содержимом вложенные элементы, как показано на рисунке 3.4;

     


    Рис. 3.4. 

     

     
  • символьные данные – это текст, выражающий информационное содержание элемента, например, название определенной книги в элементе TITLE, как показано на рисунке 3.5.

     


    Рис. 3.5. 

     

     

    Ниже приведен пример содержимого элемента, состоящего из сочетания символьных данных и вложенного элемента, как показано на рисунке 3.6.

     

     


    Рис. 3.6. 

     

     

    При добавлении в элемент символьных данных вы можете использовать любые символы, за исключением левой угловой скобки (<), амперсенда (&) и строки ]]>.

     
    Примечание. Синтаксический анализатор XML сканирует символьные данные элемента для XML-разметки. Вы не можете использовать левую угловую скобку (<), амперсенд (&) или строку ]]> в составе символьных данных, поскольку анализатор может интерпретировать < как начало вложенного элемента, & как начало ссылки на примитив или символ, а ]]> как окончание раздела CDATA. (О ссылках на примитивы и ссылках на символы пойдет речь в лекции 6; о разделе CDATA в лекции 4). Если вы хотите использовать символы < или & как часть символьных данных, вам необходимо воспользоваться разделом CDATA. Вы также можете использовать любые символы (в том числе те, которых нет на клавиатуре), воспользовавшись ссылкой на символ. Некоторые символы (например, < или &) вы можете вставлять с использованием предопределенных ссылок на общие примитивы.
  • Ссылки на общие примитивы и ссылки на символы. На рисунке 3.7 приведен элемент, содержащий оба вида таких ссылок.

     


    Рис. 3.7. 

     

     
  • Разделы CDATA – это текстовый блок, в котором вы можете свободно размещать любые символы, за исключением строки ]]>. Пример раздела CDATA внутри элемента, показан на рисунке 3.8.

     


    Рис. 3.8. 

     

     
  • Инструкции по обработке содержат информацию, необходимую для XML-приложений. (См. лекцию 4.)
  • Комментарии – это примечания к вашему XML-документу, которые прочитываются людьми, но игнорируются XML-процессором. (См. лекцию 4.)
  • На рисунке 3.9 приведен элемент, содержащий инструкцию по обработке и комментарий.

     


    Рис. 3.9. 

     

     
 

Пустые элементы

Вы также можете помещать пустой элемент – т.е. элемент, не имеющий содержимого – в ваш документ. Пустой элемент создается путем размещения конечного тега сразу же после начального тега. Например:

 

<HR></HR>

 

Либо вы можете использовать специальный тег пустого элемента:

 

<HR/>

 

Обе эти нотации являются эквивалентными.

 

Поскольку пустой элемент не имеет содержимого, у вас может возникнуть вопрос о его предназначении. Здесь есть два варианта:

 
  • вы можете использовать пустой элемент, чтобы указать XML-приложению выполнить действие или отобразить объект. Аналогом в HTML является пустой элемент BR, который является указанием браузеру вставить разрыв строки, а также пустой элемент HR, указывающий на вставку горизонтальной разделительной линии. Другими словами, само присутствие элемента с определенным именем – без какого-либо содержимого – может послужить важной информацией для приложения;
  • пустой элемент может нести информацию посредством атрибутов, о которых вы узнаете далее в этой лекции. (С элементами, которые имеют атрибуты, вы еще не встречались.) Аналогом в HTML является пустой элемент IMG (изображение), содержащий атрибуты, которые сообщают процессору, где искать графический файл и как его отобразить.
 
Совет. Таблица каскадных стилей может использовать пустой элемент для отображения рисунка, подробнее об этом вы можете узнать в лекции 7. В лекции 8 вы узнаете, как применять связывание данных для доступа к атрибутам пустого или непустого элемента. В лекции 9 вы научитесь использовать HTML-сценарии, а в лекции 10 – XSL-таблицы стилей, для доступа к элементам и их атрибутам, и для последующего выполнения соответствующих действий.

Создайте различные типы элементов

  1. Откройте новый, пустой текстовый файл в вашем текстовом редакторе и наберите XML-документ, содержащийся в Листинге 3.2. Если хотите, можете воспользоваться документом Inventory.xml, созданным вами в лекции 2 в качестве отправной точки.
  2. Воспользуйтесь командой Save (Сохранить) вашего текстового редактора, чтобы сохранить документ на жестком диске, присвоив ему имя Inventory03.xml.
    <?xml version="1.0"?>
    <!-- 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>
               

    Листинг 3.2. Inventory03.xml

    Примечание. Созданный вами документ использует CSS с именем Inventory02.css, который вы создали в предыдущем упражнении. Проверьте, чтобы файл с этой таблицей стилей был в той же папке, что файл Inventory03.xml.
  3. В Windows Explorer или в окне папки дважды щелкните на имени ранее сохраненного файла Inventory03.xml. Internet Explorer 5 отобразит документ, как показано на рисунке 3.10.

     


    Рис. 3.10. 

     

     

    Документ содержит следующие типы элементов:

     
    • элемент с комментарием в качестве его содержимого (INVENTORY). Обратите внимание, что браузер не отображает текст комментария;
    • пустой элемент с именем COVER_IMAGE в начале каждого элемента BOOK. Назначение этого элемента – указать XML-приложению отобразить определенную картинку для книжной обложки. (Атрибут Source содержит имя файла картинки.) Чтобы иметь возможность использовать такой элемент, вам потребуется отобразить XML-документ на HTML-странице посредством сценария, либо с помощью XSL-таблицы стилей (об этом будет рассказано в лекциях 9 и 10), вместо того, чтобы использовать простую CSS-таблицу, как это делается в рассматриваемом примере;
    • элемент (элемент 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) дает вам возможность иметь доступ к атрибутам и их значениям, а также отображать значение или выполнять соответствующие действия.

Правила для создания атрибутов

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

 
  • имя должно начинаться с буквы или символа подчеркивания (_), после чего могут следовать или не следовать другие буквы, цифры, символы точки (.), тире (–) или подчеркивания;
  • спецификация XML оговаривает, что имена атрибутов, начинающиеся с префикса "xml" (в любом сочетании строчных или прописных букв), "зарезервированы для стандартного использования". Хотя для Internet Explorer 5 это ограничение значения не имеет, во избежание проблем в будущем лучше не использовать этот префикс;
  • каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента.
 

Например, следующие описания имен в стартовых тегах являются допустимыми:

 
<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 будет корректной только если вы объявили А как пространство имен.

Правила для корректного задания значений атрибутов

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

 
  • строка может быть заключена как в одинарные ('), так и в двойные кавычки (");
  • строка не может содержать внутри себя тот же символ кавычек, которыми она ограничена;
  • строка может содержать ссылку на символ или ссылку на внутренние примитивы общего назначения; (Об этом будет рассказано в лекции 6.)
  • строка не может содержать символ < (Синтаксический анализатор может воспринять этот символ как начало описания XML-разметки.)
  • строка не может содержать символ &, если это не ссылка на символ или примитив.
 

Вы уже познакомились с правильными описаниями атрибутов. Ниже приведены неправильные описания:

 
<EMPLOYEE Status=""downsized"">  <!-- Нельзя использовать символы-ограничители внутри строки. -->
<ALBUM Type="<CD>">  <!-- Нельзя использовать символ < внутри строки -->
<WEATHER Forecast="Cold & Windy">  <!-- Нельзя использовать символ &, если это не ссылка -->
     

Если вы хотите использовать двойные кавычки (") внутри значения атрибута, вам следует применить в качестве ограничителей одинарные кавычки ('), как показано в примере:

 
<EMPLOYEE Status='"downsized"'>  <!-- Правильное значение атрибута. -->

Аналогично, чтобы включить одинарные кавычки в значение атрибута, следует использовать в качестве ограничителей двойные кавычки:

 
<CANDIDATE name="W.T. 'Bill' Bagley">  <!-- Правильное значение атрибута. -->

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

 

Если вы создаете корректно сформированный документ, не имеющий объявления типа документа (как вы делали в упражнениях данной лекции), вы можете присвоить атрибуту любое значение, соответствующее приведенным выше правилам. Однако, если вы создаете описание типа документа и определяете внутри него атрибуты, то можете ограничить типы значений, которые могут быть присвоены конкретному атрибуту. Например, вы можете определить атрибут, которому могут быть присвоены только значения "yes" или "no". Таким образом, одно из преимуществ задания определенного типа информации через атрибуты элементов в отличие от задания через содержимое элемента заключается в том, что при этом вы можете обеспечить контроль надо всеми типами данных, которые могут быть присвоены атрибуту, и указываете синтаксическому анализатору учитывать эти ограничения типов. (Как вы узнаете в лекции 5, в основной спецификации XML не указаны средства для ограничения типов символьных данных для элемента.)

 

Преобразуйте содержимое в атрибуты

  1. Откройте новый, пустой текстовый файл в вашем текстовом редакторе и наберите XML-документ, представленный в Листинге 3.3. При желании можете воспользоваться ранее созданным вами документом Inventory.xml в качестве отправной точки.
  2. Воспользуйтесь командой Save (Сохранить) вашего текстового редактора, чтобы сохранить документ на жестком диске под именем Inventory04.xml.
    <?xml version="1.0"?>
    <!-- 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>
            

    Листинг 3.3. Inventory04.xml

    Примечание. Созданный вами документ использует CSS-таблицу с именем Inventory02.css, которую вы создали в предыдущем упражнении. Проверьте, что этот файл таблицы стилей находится в той же папке, что и файл Inventory04.xml.
  3. В Windows Explorer (Проводник) или в окне папки дважды щелкните на имени файла Inventory04.xml. Internet Explorer 5 отобразит документ, как показано на рисунке 3.11.

     


    Рис. 3.11. 

     

     

    Данный документ основан на документе Inventory.xml, который вы создали в одном из предыдущих упражнений, однако он содержит несколько дополнительных элементов. В частности, два внесенных изменения демонстрируют использование атрибутов:

     
    • в каждом элементе BOOK информация о виде переплета преобразована из содержимого (в форме вложенного элемента BINDING) в атрибут с именем Binding. Это преобразование необходимо, если вы хотите хранить информацию о виде переплета, но не желаете ее показывать вместе с другой информацией о книге при представлении документа с использованием CSS-таблицы; (Посмотрите на рис. 3.11 и убедитесь, что Internet Explorer 5 не отобразил значения атрибута.)
    • к каждому элементу AUTHOR был добавлен атрибут с именем Born, содержащий дату рождения автора. Это пример малозначительной информации, которую вы хотели бы хранить, но отображать ее нет необходимости. Один из способов скрыть такую информацию – и объявить ее малозначительной – назначить ее в качестве значения атрибуту, а не размещать в содержимом элемента.
     

    Это только несколько из обширных возможностей применения атрибутов. Подробнее эти вопросы будут обсуждены в лекции 5.

     
 
 источник: http://www.INTUIT.ru 


 

13 центов(0,13$) за клик, выплаты через WebMoney каждый вторник +10% с рефералов

Мы выкупаем 100% трафа! $12 за 1000 хостов (РФ), и до $4 за 1000 хостов (зарубежный траф) + 10% с дохода Ваших рефералов!
 Выплаты через
WebMoney

~80-100$ за1000 хостов 2.5$ за 1 смс.
реф. процент - 10 %Выплаты происходят раз в неделю, в четверг на
WebMoney
 
 

 

____________________________

Посмотреть порно видео в онлайне »

_______________________________

 

   
   
Сайт управляется системой uCoz