WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » XML в примерах

XML в примерах


Дата публикации: 11-03-2008

Описание

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>

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Waldi Ravens:

"Программирование на С похоже на быстрые танцы на только что отполированном полу людей с острыми бритвами в руках."

Опрос

Какой текстовый редактор Вы используете?

OpenOffice
AbiWord
Notepad++
UltraEdit
PSPad
Microsoft Office
Microsoft Блокнот
Другой...