Xml пример: Пример XML-файла: типичный заказ на покупку — LINQ to XML

XML для начинающих

Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

В этой статье



  • Пометки, разметка и теги


  • Отличительные черты XML


  • Правильно сформированные данные


  • Схемы


  • Преобразования


  • XML в системе Microsoft Office

Пометки, разметка и теги


Чтобы понять XML, полезно понимать идею пометки данных. Люди создавали документы на протяжении многих лет и на протяжении всего времени они их помечали. Например, преподаватели могут постоянно пометить документы учащихся. Учащиеся могут перемещать абзацы, уточнять предложения, исправлять опечатки и так далее. Пометка документа определяет структуру, смысл и внешний вид сведений в документе. Если вы когда-либо использовали функцию «Отслеживание изменений» в Microsoft Office Word, то использовали компьютеризированную форму пометки.

В мире информационных технологий термин «пометка» превратился в термин «разметка». При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например <p> и <h3>. В HTML- и XML-документах теги легко распознать, поскольку они заключены в угловые скобки. В исходном тексте этой статьи теги HTML выполняют множество функций, например определяют начало и конец каждого абзаца (<p> … </p>) и местоположение рисунков.



Отличительные черты XML


Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.

При описании структуры и смысла данных становится возможным их повторное использование несколькими способами. Например, если у вас есть блок данных о продажах, каждый элемент в котором четко определен, то можно загрузить в отчет о продажах только необходимые элементы, а другие данные передать в бухгалтерскую базу данных. Иначе говоря, можно использовать одну систему для генерации данных и пометки их тегами в формате XML, а затем обрабатывать эти данные в любых других системах вне зависимости от клиентской платформы или операционной системы. Благодаря такой совместимости XML является основой одной из самых популярных технологий обмена данными.

Учитывайте при работе следующее:

  • HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.

  • Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

  • Правила XML разрешают создавать любые теги, требуемые для описания данных и их структуры. Допустим, что вам необходимо хранить и совместно использовать сведения о домашних животных. Для этого можно создать следующий XML-код:


    
    <?xml version="1.0"?>
    <CAT>
      <NAME>Izzy</NAME>
      <BREED>Siamese</BREED>
      <AGE>6</AGE>
      <ALTERED>yes</ALTERED>
      <DECLAWED>no</DECLAWED>
      <LICENSE>Izz138bod</LICENSE>
      <OWNER>Colin Wilcox</OWNER>
    </CAT>
    

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

Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:


Izzy Siamese 6 yes no Izz138bod Colin Wilcox

Веб-браузер проигнорирует теги XML и отобразит только данные.



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


Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.

Правила создания правильно сформированного XML-файла знать необязательно (хотя понять их нетрудно), но следует помнить, что использовать в других приложениях и системах можно лишь правильно сформированные XML-данные. Если XML-файл не открывается, то он, вероятно, неправильно сформирован.

XML не зависит от платформы, и это значит, что любая программа, созданная для использования XML, может читать и обрабатывать XML-данные независимо от оборудования или операционной системы. Например, при применении правильных тегов XML можно использовать программу на настольном компьютере для открытия и обработки данных, полученных с мейнфрейма. И, независимо от того, кто создал XML-данные, с ними данными можно работать в различных приложениях Office. Благодаря своей совместимости XML стал одной из самых популярных технологий обмена данными между базами данных и пользовательскими компьютерами.

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



Схемы


Не пугайтесь термина «схема». Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.

Схемы позволяют программам проверять данные. Они формируют структуру данных и обеспечивают их понятность создателю и другим людям. Например, если пользователь вводит недопустимые данные, например текст в поле даты, программа может предложить ему исправить их. Если данные в XML-файле соответствуют правилам в схеме, для их чтения, интерпретации и обработки можно использовать любую программу, поддерживающую XML. Например, как показано на приведенном ниже рисунке, Excel может проверять данные <CAT> на соответствие схеме CAT.

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов <CAT> … </CAT>:



<xsd:element name="CAT">  
  <xsd:complexType>  
    <xsd:sequence>
      <xsd:element name="NAME" type="xsd:string"/>
      <xsd:element name="BREED" type="xsd:string"/>
      <xsd:element name="AGE" type="xsd:positiveInteger"/>
      <xsd:element name="ALTERED" type="xsd:boolean"/>
      <xsd:element name="DECLAWED" type="xsd:boolean"/>
      <xsd:element name="LICENSE" type="xsd:string"/>
      <xsd:element name="OWNER" type="xsd:string"/>        
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

  • Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.

  • Объявления являются мощным средством управления структурой данных. Например, объявление <xsd:sequence> означает, что теги, такие как <NAME> и <BREED>, должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

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


Преобразования


Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.

Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.

В следующем примере кода показан один из способов написания преобразования. Она загружает данные <CAT> в таблицу на веб-странице. В этом примере суть не в том, чтобы показать, как написать преобразование, а в том, чтобы показать одну форму, которую может принять преобразование.



<?xml version="1.0"?>
<xsl:stylesheet version="1.0"> 
<TABLE>
  <TR>
    <TH>Name</TH>
    <TH>Breed</TH>
    <TH>Age</TH>
    <TH>Altered</TH>
    <TH>Declawed</TH>    
    <TH>License</TH>
    <TH>Owner</TH>
  </TR>
  <xsl:for-each select="CAT">
  <TR ALIGN="LEFT" VALIGN="TOP">
    <TD>
      <xsl:value-of select="NAME"/>
    </TD>
    <TD>
      <xsl:value-of select="BREED"/>
    </TD>
    <TD>
      <xsl:value-of select="AGE"/>
    </TD>
    <TD>
      <xsl:value-of select="ALTERED"/>
    </TD>
    <TD>
      <xsl:value-of select="DECLAWED"/>
    </TD>
    <TD>
      <xsl:value-of select="LICENSE"/>
    </TD>
    <TD>
      <xsl:value-of select="OWNER"/>
    </TD>
  </TR>
</xsl:for-each>
</TABLE>

В этом примере показано, как может выглядеть текст одного из типов преобразования, но помните, что вы можете ограничиться четким описанием того, что вам нужно от данных, и это описание может быть сделано на вашем родном языке. Например, вы можете пойти в отдел ИТ и сказать, что необходимо напечатать данные о продажах для конкретных регионов за последние два года, и что эти сведения должны выглядеть так-то и так-то. После этого специалисты отдела могут написать (или изменить) преобразование, чтобы выполнить вашу просьбу.

Корпорация Майкрософт и растущее число других компаний создают преобразования для различных задач, что делает использование XML еще более удобным. В будущем, скорее всего, можно будет скачать преобразование, отвечающее вашим потребностям без дополнительной настройки или с небольшими изменениями. Это означает, что со временем использование XML будет требовать все меньше и меньше затрат.



XML в системе Microsoft Office


Профессиональные выпуски Office обеспечивают всестороннюю поддержку XML. Начиная с Microsoft Office 2007, в Microsoft Office используются форматы файлов на основе XML, например DOCX, XLSX и PPTX. Поскольку XML-данные хранятся в текстовом формате вместо запатентованного двоичного формата, ваши клиенты могут определять собственные схемы и использовать ваши данные разными способами без лицензионных отчислений. Дополнительные сведения о новых форматах см. в сведениях о форматах Open XML и расширениях имен файлов. К другим преимуществам относятся:

  • Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

  • Более простое восстановление данных и большая безопасность. Формат XML может быть легко прочитан пользователем, поэтому если файл поврежден, его можно открыть в Блокноте или другой программе для просмотра текста и восстановить хотя бы часть данных. Кроме того, новые файлы более безопасны, потому что они не могут содержать код Visual Basic для приложений (VBA). Если новый формат используется для создания шаблонов, то элементы ActiveX и макросы VBA находятся в отдельном, более безопасном разделе файла. Кроме того, можно удалять личные данные из документов с помощью таких средств, как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных при проверке документов.

Пока все хорошо, но что делать, если у вас есть данные XML без схемы? У Office программ, которые поддерживают XML, есть свои подходы к работе с данными. Например, Excel выдаст схему, если вы откроете XML-файл, который еще не имеет такой схемы. Excel затем вы можете загрузить эти данные в XML-таблицу. Для сортировки, фильтрации или добавления вычислений в данные можно использовать XML-списки и таблицы.



Включение средств XML в Office


По умолчанию вкладка «Разработчик» не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

  • В Office 2016, Office 2013 или Office 2010: Отображение вкладки «Разработчик».

  • В Office 2007: Отображение вкладки разработчика или запуск в режиме разработчика.

Пример XML схемы

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

XML документ

Давайте посмотрим на следующий XML документ под названием «shiporder.xml»:

<?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
   <orderperson>John Smith</orderperson>
   <shipto>
      <name>Ola Nordmann</name>
      <address>Langgt 23</address>
      <city>4000 Stavanger</city>
      <country>Norway</country>
   </shipto>
   <item>
      <title>Empire Burlesque</title>
      <note>Special Edition</note>
      <quantity>1</quantity>
      <price>10. 90</price>
   </item>
   <item>
      <title>Hide your heart</title>
      <quantity>1</quantity>
      <price>9.90</price>
   </item>
</shiporder>

Приведенный выше XML документ состоит из корневого элемента shiporder с обязательным атрибутом orderid. Элемент shiporder содержит три дочерних элемента: orderperson, shipto и item. Элемент item используется дважды и содержит элемент title, необязательный элемент note, а также элементы quantity и price.

Строка xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» говорит XML парсеру, что этот документ должен быть проверен на соответствие схеме. Строка xsi:noNamespaceSchemaLocation=»shiporder.xsd» указывает, где именно находится схема (в данном случае она находится в той же папке, что и файл «shiporder. xml»).

Создание XML схемы

Теперь для приведенного выше XML документа создадим XML схему.

Создадим новый файл, который назовем «shiporder.xsd». Для создания XML схемы будем просто следовать за структурой XML документа и определять каждый встреченный элемент. Начнем со стандартной XML декларации, за которой опишем элемент xs:schema, который и определяет саму схему:

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   ...
</xs:schema>

Здесь мы используем стандартное пространство имен (xs) и URI, ассоциированный с этим пространством имен, который имеет стандартное значение http://www.w3.org/2001/XMLSchema.

Теперь мы должны определить элемент shiporder. У этого элемента есть атрибут, и он содержит другие элементы, поэтому мы рассматриваем его как элемент составного типа. Определения дочерних элементов элемента shiporder поместим в декларацию xs:sequence, что задает жесткую последовательность подэлементов:

<xs:element name="shiporder">
   <xs:complexType>
      <xs:sequence>
         . ..
      </xs:sequence>
   </xs:complexType>
</xs:element>

Теперь определим элемент orderperson, который будет простого типа (так как он не содержит ни атрибуты, ни другие элементы). Его тип (xs:string) имеет префикс пространства имен, ассоциированного с XML схемой, что указывает на использование предопределенного типа данных:

<xs:element name="orderperson" type="xs:string"/>

Теперь нам нужно определить два элемента составного типа: shipto и item. Начнем с определения элемента shipto:

<xs:element name="shipto">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="name" type="xs:string"/>
         <xs:element name="address" type="xs:string"/>
         <xs:element name="city" type="xs:string"/>
         <xs:element name="country" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
</xs:element>

При помощи схем мы можем определить число возможных вхождений любого элемента. В этом нам помогут атрибуты maxOccurs и minOccurs. Атрибут maxOccurs задает максимальное число вхождений элемента, а атрибут minOccurs задает минимальное число вхождений. По умолчанию значение обоих атрибутов равно 1.

Теперь определим элемент item. Этот элемент может использоваться неограниченное число раз внутри элемента shiporder. Определить такую особенность элемента item позволяет присваивание атрибуту maxOccurs значения «unbounded». Это означает, что элемент item может использоваться столько раз, сколько нужно автору документа. Обратите внимание, что элемент note опционален. Определим это установив атрибут minOccurs в нулевое значение:

<xs:element name="item" maxOccurs="unbounded">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="title" type="xs:string"/>
         <xs:element name="note" type="xs:string" minOccurs="0"/>
         <xs:element name="quantity" type="xs:positiveInteger"/>
         <xs:element name="price" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
</xs:element>

Теперь мы можем декларировать атрибут элемента shiporder. Поскольку это обязательный атрибут, используем определение use=»required».

Примечание: Атрибуты должны всегда декларироваться последними:

<xs:attribute name="orderid" type="xs:string" use="required"/>

Вот полный код файла схемы «shiporder.xsd»:

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="shiporder">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="orderperson" type="xs:string"/>
            <xs:element name="shipto">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="name" type="xs:string"/>
                     <xs:element name="address" type="xs:string"/>
                     <xs:element name="city" type="xs:string"/>
                     <xs:element name="country" type="xs:string"/>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
            <xs:element name="item" maxOccurs="unbounded">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="title" type="xs:string"/>
                     <xs:element name="note" type="xs:string" minOccurs="0"/>
                     <xs:element name="quantity" type="xs:positiveInteger"/>
                     <xs:element name="price" type="xs:decimal"/>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
         <xs:attribute name="orderid" type="xs:string" use="required"/>
      </xs:complexType>
   </xs:element>
</xs:schema>

Разделение схемы

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

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

Ниже приводится новая компоновка файла схемы («shiporder.xsd»):

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <!-- определение простых элементов -->
   <xs:element name="orderperson" type="xs:string"/>
   <xs:element name="name" type="xs:string"/>
   <xs:element name="address" type="xs:string"/>
   <xs:element name="city" type="xs:string"/>
   <xs:element name="country" type="xs:string"/>
   <xs:element name="title" type="xs:string"/>
   <xs:element name="note" type="xs:string"/>
   <xs:element name="quantity" type="xs:positiveInteger"/>
   <xs:element name="price" type="xs:decimal"/>
   <!-- определение атрибутов -->
   <xs:attribute name="orderid" type="xs:string"/>
   <!-- определение составных элементов -->
   <xs:element name="shipto">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="name"/>
            <xs:element ref="address"/>
            <xs:element ref="city"/>
            <xs:element ref="country"/>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:element name="item">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="title"/>
            <xs:element ref="note" minOccurs="0"/>
            <xs:element ref="quantity"/>
            <xs:element ref="price"/>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:element name="shiporder">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="orderperson"/>
            <xs:element ref="shipto"/>
            <xs:element ref="item" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute ref="orderid" use="required"/>
      </xs:complexType>
   </xs:element>
</xs:schema>

Использование поименованых типов

Третий способ компоновки схемы предполагает определение классов или типов, которые позволяют повторное использование определений элементов. Это становится возможным, если дать имена элементам simpleTypes и complexTypes, а затем указать на них при помощи атрибута type.

Третий способ компоновки файла схемы («shiporder.xsd»):

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:simpleType name="stringtype">
      <xs:restriction base="xs:string"/>
   </xs:simpleType>
   <xs:simpleType name="inttype">
      <xs:restriction base="xs:positiveInteger"/>
   </xs:simpleType>
   <xs:simpleType name="dectype">
      <xs:restriction base="xs:decimal"/>
   </xs:simpleType>
   <xs:simpleType name="orderidtype">
      <xs:restriction base="xs:string">
         <xs:pattern value="[0-9]{6}"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="shiptotype">
      <xs:sequence>
         <xs:element name="name" type="stringtype"/>
         <xs:element name="address" type="stringtype"/>
         <xs:element name="city" type="stringtype"/>
         <xs:element name="country" type="stringtype"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="itemtype">
      <xs:sequence>
         <xs:element name="title" type="stringtype"/>
         <xs:element name="note" type="stringtype" minOccurs="0"/>
         <xs:element name="quantity" type="inttype"/>
         <xs:element name="price" type="dectype"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="shipordertype">
      <xs:sequence>
         <xs:element name="orderperson" type="stringtype"/>
         <xs:element name="shipto" type="shiptotype"/>
         <xs:element name="item" maxOccurs="unbounded" type="itemtype"/>
      </xs:sequence>
      <xs:attribute name="orderid" type="orderidtype" use="required"/>
   </xs:complexType>
   <xs:element name="shiporder" type="shipordertype"/>
</xs:schema>

Элемент restriction указывает на то, что тип данных является производным от типов данных из пространства имен W3C XML Schema. Таким образом, следующий фрагмент кода означает, что значение элемента или атрибута должно быть строковым:

<xs:restriction base="xs:string">

Однако гораздо чаще элемент restriction используется для накладывания ограничений на элементы. Посмотрите на следующие строки из приведенной выше схемы:

<xs:simpleType name="orderidtype">
   <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{6}"/>
   </xs:restriction>
</xs:simpleType>

Этот фрагмент кода указывает, что значение элемента или атрибута должно быть строковым, ровно шесть символов в длину, и этими символами должны быть цифры от 0 до 9.

Пример XML — javatpoint

следующий →
← предыдущая

XML-документы создают иерархическую структуру, похожую на дерево, поэтому оно известно как XML-дерево, которое начинается с «корня» и разветвляется на «листья».

Пример XML-документа

Документы XML используют самоописываемый и простой синтаксис:

  0" encoding="ISO-8859-1"?>
<примечание>
  Туве
  Яни
  Напоминание
  Не забудьте меня в эти выходные!

 

Первая строка — объявление XML. Он определяет версию XML (1.0) и используемую кодировку (ISO-8859-1 = набор символов Latin-1/западноевропейский).

Следующая строка описывает корневой элемент документа (например, «этот документ является заметкой»):

 <примечание>
 

Следующие 4 строки описывают 4 дочерних элемента корня (to, from, заголовок и тело).

 Туве
Яни
Напоминание
Не забудьте меня в эти выходные!
 

И, наконец, последняя строка определяет конец корневого элемента.

 
 

XML-документы

должны содержать корневой элемент . Этот элемент является «родителем» всех остальных элементов.

Элементы XML-документа образуют дерево документа. Дерево начинается с корня и разветвляется до самого нижнего уровня дерева.

Все элементы могут иметь подэлементы (дочерние элементы).

 <корень>
  <ребенок>
    <поддочерний>.....
  

 

Термины «родительский», «дочерний» и «сестринский» используются для описания отношений между элементами. У родительских элементов есть дочерние элементы. Дети одного уровня называются сиблингами (братьями или сестрами).

Все элементы могут иметь текстовое содержимое и атрибуты (как и в HTML).

Другой пример XML: книги

Файл: books.xml

 <книжный магазин>
  
    Повседневный итальянский
    Джада Де Лаурентис
    <год>2005
    <цена>30,00
  
  
    Гарри Поттер
    Дж. К. Роулинг
    <год>2005
    <цена>290,99
  
  <категория книги="ВЕБ">
    Изучение XML
    Эрик Т.  Рэй
    <год>2003
    <цена>39,95
  

 

Протестируйте сейчас

В данном примере корневым элементом является . Все элементы документа содержатся в .

Элемент имеет 4 дочерних элемента:,<author>, <year> и <price>.</p><h3><span class="ez-toc-section" id="%D0%94%D1%80%D1%83%D0%B3%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80_XML_%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D1%87%D1%82%D0%B0"></span> Другой пример XML: электронная почта <span class="ez-toc-section-end"></span></h3><p> Файл: emails.xml</p><pre name="code"> <?xml version="1.0" encoding="UTF-8"?> <электронные письма> <электронная почта> <to>Вимал</to> <from>Соно</from> <heading>Здравствуйте</heading> <body>Привет, брат, как дела!</body> </электронная почта> <электронная почта> <to>Питер</to> <from>Джек</from> <heading>Пожелание ко дню рождения</heading> <body>С днем ​​рождения, Том!</body> </электронная почта> <электронная почта> <to>Джеймс</to> <from>Жаклин</from> <heading>Утренняя прогулка</heading> <body>Пожалуйста, начните утреннюю прогулку, чтобы оставаться в форме!</body> </электронная почта> <электронная почта> <to>Картик</to> <from>Кумар</from> <heading>Советы для здоровья</heading> <body>Курение вредно для здоровья!</body> </электронная почта> </электронные письма> </pre><p>Протестируйте сейчас</p><p> Next TopicXML Related Technologies</p><p> ← предыдущая<br /> следующий →</p></td></tr></table><h2><span class="ez-toc-section" id="%D0%9E%D0%B1%D1%80%D0%B0%D0%B7%D0%B5%D1%86_XML-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0_books"></span> Образец XML-файла (books.<span class="ez-toc-section-end"></span></h2><p><img class="lazy lazy-hidden" loading='lazy' src="//imacrosoft.ru/wp-content/plugins/a3-lazy-load/assets/images/lazy_placeholder.gif" data-lazy-type="image" data-src='/800/600/http/image2.slideserve.com/5172532/xml-example-l.jpg' /><noscript><img loading='lazy' src='/800/600/http/image2.slideserve.com/5172532/xml-example-l.jpg' /></noscript> xml) | Microsoft Узнайте</h2><p data-readability-styled="true"><p>Твиттер</p><p>LinkedIn</p><p>Фейсбук</p><p>Эл. адрес</p><ul data-bi-name="page info" lang="en-us" dir="ltr"><li> Статья</li><li> <time data-article-date="" aria-label="Article review date" datetime="2016-10-27T00:00:00.000Z" data-article-date-source="ms.date"> 27.10.2016 </time></li><li> 2 минуты на чтение</li></ul><p>  </p><p> Следующий XML-файл используется в различных примерах пакета Microsoft XML Core Services (MSXML) SDK.</p> <pre> <?xml версия="1.0"?><br /> <каталог><br /> <книга><br /> <author>Гамбарделла, Мэтью</author><br /><title>Руководство разработчика XML
<жанр>Компьютер
<цена>44,95 01.10.2000 Подробный обзор создания приложений
с XML.


<книга>
Раллс, Ким
Полуночный дождь
<жанр>Фэнтези
<цена>5,95 2000-12-16 Бывший архитектор борется с корпоративными зомби,
злая волшебница, и ее собственное детство, чтобы стать королевой
мира.


<книга>
Корец, Ева
Мейв Восхождение
<жанр>Фэнтези
<цена>5,95 17.11.2000 После краха нанотехнологии
общество в Англии, молодые выжившие закладывают
фундамент нового общества.


<книга>
Корец, Ева
Наследие Оберона
<жанр>Фэнтези
<цена>5,95 10 марта 2001 г. В постапокалиптической Англии таинственный
агент, известный только как Оберон, помогает создать новую жизнь
для жителей Лондона. Продолжение Мэйв
Восходящий.


<книга>
Корец, Ева
Расколотый Грааль
<жанр>Фэнтези
<цена>5,95 10 сентября 2001 г. Две дочери Мейв, сводные сестры,
сражаются друг с другом за контроль над Англией. Продолжение
Наследие Оберона.


<книга>
Рэндалл, Синтия
Влюбленные птички
<жанр>Романтика
<цена>4,95 2000-09-02 Когда Карла встречает Пола в орнитологии
конференция, раздражение летит, как перья взъерошиваются.


<книга>
Турман, Паула
Всплеск
<жанр>Романтика
<цена>4,95 02.11.2000 Глубоководный ныряльщик находит настоящую любовь двадцать
тысяча лиг под водой.


<книга>
Кнорр, Стефан
Жуткие ползучести
<жанр>Ужасы
<цена>4,95 2000-12-06 Антология страшилок про тараканов,
многоножки, скорпионы и другие насекомые.


<книга>
Кресс, Питер
Потерянный парадокс
<жанр>Научная фантастика
<цена>6,95 02.

Imacros | Все права защищены © 2021