На главную страницу Написать письмо Добавить в избранное Сделать www.comprog.ru стартовой

XML в примерах

Описание
XML документ должен содержать один или более элементов.
Правильно сформированные документы

Документ с одним элементом:


             <text>This is an XML document</text>
 
 

Документ с несколькими элементами:

             <text>This is an
                <doctype>XML document</doctype>
             </text>
 
 

Документы с ошибками


XML документ должен содержать, как минимум, один элемент:

             ??? This is an XML document ???
 
 

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

Правильно сформированные документы


<book> является корневым:

             <book>This is a book</book>
 
 

<list> является корневым:

             <list>
                <item>Item 1</item>
                <item>Item 2</item>
                <item>Item 3</item>
             </list>

 
 

Документы с ошибками


В документе может быть только один корневой элемент:

             ???
             <item>Item 1</item>
             <item>Item 2</item>
             <item>Item 3</item>
             ???
 
 

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

Правильно сформированные документы


Закрывающий тег </book> соответствует открывающему <book>:

             <book>This is a book</book>
 
 

Правильно сформированный документ, содержащий 4 различных элемента <list>, <item>, <ITEM> и <Item>:

             <list>
                <item>Car</item>
                <ITEM>Plane</ITEM>
                <Item>Train</Item>
             </list>
 
 

Документы с ошибками


<item> - </itm> и <item> - </ITEM> не сопоставимы:

             <list>
                <item>Car</itm>
                <item>Plane</ITEM>
                <item>Train</item> 
             </list>
 
 

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

Правильно сформированные документы


Элементы с правильной вложенностью:

             <Weight>
                  <number>12</number>
                  <unit>grams</unit>
             </Weight>
 
 

Другой правильно сформированный документ:

             <book>
                  <chapter>
                       <title>Introduction</title>
                 </chapter>
                  <chapter>
                       <title>Story</title>
                       <subChapter>
                            <title>Part 1</title>
                       </subChapter>
                       <subChapter>
                            <title>Part 2</title>
                       </subChapter>
                  </chapter>
                  <chapter>
                       <title>Index</title>
                  </chapter>
             </book>
 
 

Документы с ошибками


Элемент <italic> не является правильно вложенным:

             <text>
                  <bold><italic>XML</bold></italic>
             </text>
 
 

Конец любого элемента, начинающегося открывающим тегом, должен быть определен закрывающим тегом, имя которого совпадает с типом элемента, указанного в открывающем теге. Текст между открывающим и закрывающим тегами называется содержимым элемента. Элемент без содержимого может быть записан в специальной форме: <name/>. Косая черта ("/") перед > обуславливает закрывающий тег.

Правильно сформированные документы


Каждый элемент должен иметь закрывающий тег или должен быть представлен в специальной форме. В XML нет разницы между конструкциями <AAA></AAA> и <AAA/>:

             <listOfTags>
                  <AAA></AAA>
                  <BBB></BBB>
                  <CCC/>
                  <DDD/>
             </listOfTags>
 
 

Документы с ошибками


Пропуск косой черты ("/") является очень распространенной ошибкой:

  <description>
     There are  <color>yellow<color> and <color>red</color> apples.
  </description>
 
 

Имена элементов могут содержать буквы, цифры, дефисы ("-"), символы подчеркивания ("_"), двоеточия (":") и точки (".'), однако начинаться они могут только с буквы или символа подчеркивания. Двоеточие может быть использовано только в специальных случаях, когда оно разделяет так называемое пространство имен. Имена элементов, начинающиеся с 'xml', вне зависимости от комбинации регистров букв в этом выражении зарезервированы для нужд стандарта.

Правильно сформированные документы


Документ с разрешенными символами:

               <permitedNames>
                    <name/>
                    <xsl:copy-of/>
                    <A_long_element_name/>
                    <A.name.separated.with.full.stops/>
                    <a123323123-231-231/>
                    <_12/>
               </permitedNames>
               
            

Документы с ошибками


Этот документ содержит несколько ошибок:

               <forbidenNames>
                    <A;name/>
                    <last@name/>
                    <@#$%^()%+?=/>
                    <A*2/>
                    <1ex/>
               </forbidenNames>
               
            

Имена не могут начинаться с 'xml':

               <forbidenNames>
                    <xmlTag/>
                    <XMLTag/>
                    <XmLTag/>
                    <xMlTag/>
                    <xmLTag/>
               </forbidenNames>
               
            

Элемент может иметь ни одного, один или несколько атрибутов. Правила на имена атрибутов накладываются такие же как и на имена элементов. Имена атрибутов отделяются от их значений знаком '='. Значение атрибута заключается в апострофы '...' или в двойные кавычки "...". Если апостроф или двойные кавычки присутствуют в значении атрибута, то используются те из них, которые не встречаются в этом значении.

Правильно сформированные документы


Документ с правильно оформленными атрибутами:

               <elements-with-attributes>
                    <el _ok = "yes" />
                    <one attr = "a value"/>
                    <several first="1" second = '2' third= "333"/>
                    <apos_quote case1="John's" case2='He said: "Hello, world!"  '/>
               </elements-with-attributes>
               
            

Документы с ошибками


Документ с ошибочными атрибутами:

             <errors>
                  <wrong_char a*b = "23432"/>
                  <mismatched_separator value = "12'/>
                  <wrong_separator_type  value="aa"aa"/>
                  <wrong_separator_type  value='bb'bb'/>
                  <wrong_start XML-ID = "xml234"/>
             </errors>
 
 

Символы < и & не могут быть использованы в тексте, так как они используются в разметке. Если эти символы необходимы, следует использовать &lt; вместо < и &amp; вместо &.

Правильно сформированные документы


Замещение & и <:

             <example>
                  <isLower>
                       23 &lt; 46
                  </isLower>
                  <ampersand>
                       Willey &amp; sons
                  </ampersand>
             </example>
 
 

Документы с ошибками


Символы & и < не могут быть использованы в тексте:

             <example>
                  <isLower>
                       23 < 46
                  </isLower>
                  <ampersand>
                       Willey & sons
                  </ampersand>
             </example>
 
 

Символы >, ", и ' также могут быть заменены на &gt;, &quot; и &apos;, соответственно.

Правильно сформированные документы


Возможные подстановки:

    <example>
         <right-bracket> both > and &gt; permitted</right-bracket>
         <double-quote> both " and &quot; permitted</double-quote>
         <apostrophe> both ' and &apos; permitted</apostrophe>
         Useful in: <el value=" &apos; &quot; &apos; "/>
    </example>
 
 

Комментарии могут содержаться в любом месте документа, кроме разметки. XML-процессор может, но не обязан, предоставлять приложениям доступ к содержимому комментариев. В тексте комментарием не должна содержаться последовательность из двух знаков дефиса ('--').

Правильно сформированные документы


Коментарии могут содержать любые символы, кроме строки '--':

             <!-- doc A -->
             <example>
                <!-- <HEAD>  -->
                <!-- Characters <&<  -->
             </example>
 
 

Документы с ошибками


Коментарии не должны содержать '--':

             <example>
                  <!-- A -- B -->
             </example>

 
 

Документ может содержать инструкции по обработке (PI), несущие информацию для приложений.

Правильно сформированные документы


Инструкции по обработке:

             <example>
                <?perl lower-to-upper-case  ?>
                <?web-server add-header = "university" ?>
                <text>vscht</text>
             </example>
 
 

Документы с ошибками


Инструкции к обработке должны заканчиваться последовательностью ?>:

             <example>
                <?perl run _>
             </example>

 
 

Секция CDATA используется для того, чтобы обозначить части документа, которые не должны восприниматься как разметка. Секция CDATA начинается со строки '<![CDATA[' и заканчивается строкой ']]>'. Внутри самой секции не должна присутствовать строка ']]>'.

Правильно сформированные документы


Секция CDATA:

             <example>
                  <![CDATA[ <aaa>bb&cc<<<]]>
             </example>
 
 

Документы с ошибками


Секция CDATA не может содержать последовательность ']]>':

             <example>
                  <![CDATA[ <aaa>bb ]]>cc<<<]]>
             </example>
 
 

XML-документ может, но не обязан, начинаться с XML-декларации, определяющей используемую версию XML.

Правильно сформированные документы


Определение версии XML:

         <?xml version="1.0"?>
         <text>This document conforms to the XML 1.0 specification.</text>
               
            

Определение используемой кодировки:

         <?xml version="1.0" encoding="ISO-8859-2"?>
         <text>If encoding is not given UTF-8 is assumed</text>
               
            

  Поиск по сайту
  
Яндекс цитирования