Формат эксемель как пишется

Узнайте, как расширяемый язык разметки extensible markup language xml облегчает универсальный доступ к данным. xml основанный на unicode

Узнайте, как Расширяемый язык разметки (Extensible Markup Language — XML) облегчает универсальный доступ к данным. XML — основанный на Unicode метаязык: язык для описания языков разметки. Он не привязан ни к одному языку программирования, операционной системе или поставщику программного обеспечения. XML обеспечивает доступ к огромному количеству технологий по манипулированию, структурированию, трансформированию и запрашиванию данных.

Расширяемый язык разметки (XML) изначально был задуман как язык для описания новых форматов документов World Wide Web. XML происходит от Стандартного обобщенного языка разметки (Standard Generalized Markup Language — SGML) и может считаться метаязыком: языком для определения языков разметки. SGML и XML — это ориентированные на текст форматы, которые обеспечивают механизмы описания структур документов с помощью тэгов разметки (слов, взятых в угловые скобки ‘<‘ и ‘>’). Web-разработчики могут заметить некоторую схожесть между HTML и XML, обусловленную тем фактом, что они оба происходят от SGML.

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

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

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

Расширяемость XML проявляется многими способами. Прежде всего, в отличие от HTML, у него нет фиксированного словаря. С XML каждый может определить специальные словари для конкретных приложений или различных отраслей промышленности. Во-вторых, приложения, обрабатывающие или использующие форматы XML, более устойчивы к изменениям в структуре предлагаемого им XML, чем приложения, которые используют другие форматы. Например, приложение, которое зависит от обработки элемента <Customer> с атрибутом customer-id, обычно не должно прерываться, если другой атрибут, такой как last-purchase-date, был добавлен в элемент <Customer>. Такая гибкость несвойственна другим форматам данных и является существенным преимуществом использования XML.

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

Преимущества представления данных в виде XML были признаны многими и привели к распространению XML-источников данных. Деловые документы, базы данных и межделовое общение — все это примеры информационных источников, которые переходят или перешли к использованию XML как формата представления. Такие продукты Microsoft как Microsoft Office®, Microsoft SQL Server™ и Microsoft .NET Framework дают возможность конечным пользователям и разработчикам создавать и использовать документы, сетевые сообщения и другие данные в виде XML.

Как было упомянуто ранее, рекомендация W3C XML 1.0 описывает текстовый формат для описания структурированных и псевдоструктурированных данных, используя синтаксис, подобный HTML.

И HTML, и XML документы состоят из элементов, каждый из которых включает «начальный тэг» (<order>), «конечный тэг» (</order>) и информацию, заключенную между этими двумя тэгами (которая называется содержимым элемента). Элементы могут быть аннотированы атрибутами, содержащими метаданные об элементе и его содержимом.

Однако между HTML и XML есть существенные отличия. XML чувствителен к регистру, в то время как HTML — нет. Это значит, что в XML начальные тэги <Table> и <table> различны, тогда как в HTML — это одно и то же. Другое различие между HTML и XML в том, что XML представляет концепцию правильного построения. Правила построения XML устраняют некоторую неопределенность, присущую обработке таких языков разметки как HTML, вводя такие постулаты, как то, что все значения атрибутов должны быть заключены в кавычки, и что у всех элементов должны быть или начальный и конечный тэги, или явное указание того, что это пустые элементы. Краткое описание правил построения дается в XML FAQ в разделе D.2.

Самое существенное различие между HTML и XML в том, что в HTML есть предопределенные элементы и атрибуты, поведение которых предопределено, в то время как в XML такого нет. Вместо этого, авторы документа могут создавать собственные XML-словари, предназначенные именно для их приложения или деловых нужд. В настоящее время существуют XML-словари для огромного количества отраслей промышленности и приложений: от финансовых картотек (XBRL) и финансовых операций (FpML) до Web-документов (XHTML) и сетевых протоколов (SOAP). Отсутствие предопределенных элементов и атрибутов, которые определяют, как формируется или отображается XML-документ, дает возможность авторам сосредоточиться на создании документов, которые содержат только существенную семантическую информацию в их конкретной предметной области. Отделение содержимого от представления, ставшее возможным с XML-словарями, существенно увеличивает возможности повторного использования информации и перенацеливания содержимого.

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

<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml-stylesheet href="orders.xsl"?>

<order id="ord123456">
  <customer id="cust0921">
    <first-name>Dare</first-name>
    <last-name>Obasanjo</last-name>
    <address>
      <street>One Microsoft Way</street>
      <city>Redmond</city>
      <state>WA</state>
      <zip>98052</zip>
    </address>
  </customer>
  <items>
    <compact-disc>
      <price>16.95</price>
      <artist>Nelly</artist>
      <title>Nellyville</title>
    </compact-disc>
    <compact-disc>
      <price>17.55</price>
       <artist>Baby D</artist>
       <title>Lil Chopper Toy</title>
    </compact-disc>
  </items>

  <!--  Доставка должна быть произведена в любом случае -->
  <special-instructions xmlns:html="http://www.w3.org/1999/xhtml/">
    <html:p>Если заказчика нет по указанному адресу, тогда попытайтесь
      оставить пакет в одном из следующих мест, список которых приведен в 
      порядке приоритетности доставки
    <html:ol>
      <html:li>Соседняя дверь</html:li>
      <html:li>У консьержа</html:li>
      <html:li>На пороге</html:li>
    </html:ol>
    <html:b>Примечание</html:b> Не забудьте оставить записку с точным
   указанием, где находится пакет.
    </html:p>
  </special-instructions>
</order>

Документ начинается с необязательного описания XML, в котором указывается, какая версия XML и кодирование символом используются. Далее следует инструкция обработки xml-stylesheet, которая используется для связывания таблицы стилей, содержащей инструкции по форматированию, с XML-документом. Таблица стилей используется для формирования привлекательного внешнего вида документа в пользовательских приложениях, таких как Web-браузеры. Инструкции обработки обычно используются для введения информации о приложении в XML-документ. Например, большинство приложений, обрабатывающих содержимое приведенного выше документа, вероятно, проигнорируют инструкцию обработки xml-stylesheet. С другой стороны, приложения, используемые для отображения XML-документа, такие как Web-браузер, могли бы использовать информацию инструкции обработки для того, чтобы определить, где располагается таблица стилей, содержащая специальные инструкции для отображения документа.

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

То, что XML основан на Unicode, делает его подходящим для совместного использования информации через глобальные сети, такие как World Wide Web.

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

Рекомендация информационного множества W3C XML (W3C XML Information Set recommendation) описывает абстрактное представление XML-документа. XML Infoset, главным образом, изначально выступает в роли набора определений, используемых XML-технологиями для формального описания того, с какими частями XML-документа они работают. В терминах XML Infoset описаны несколько W3C XML-технологий, включая SOAP 1.2, XML Schema и XQuery.

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

согласно XML Infoset, считается эквивалентным. Аналогично, не имеет значения и тип кавычек, используемых для атрибутов; таким образом, элементы

<test attr='value'/>
  <test attr="value"/>

согласно XML Infoset, эквивалентны. Список аспектов синтаксиса XML 1.0, которые не рассматриваются XML Infoset, приведен в Приложении D рекомендации Информационного множества W3C XML.

Рекомендация Информационного множества W3C XML описывает концепцию синтетических информационных множеств, которые создаются средствами, отличными от синтаксического разбора текстового XML-документа. Синтетические информационные множества подготавливают почву для обработки с помощью XML-технологий не-XML-данных, которые могут быть преобразованы в XML Infoset. Примером обработки синтетического информационного множества является ObjectXPathNavigator (http://msdn.microsoft.com/library/en-us/dnexxml/html/xml03172003.asp), который обеспечивает возможность запрашивать объекты в .NET Framework, используя XPath, или преобразовывать их, используя XSLT.

Язык XML-схемы используется для описания структуры и содержимого XML-документа. Например, схема может использоваться для определения документа, состоящего из одного или более элементов compact-disc, каждый из которых включает в качестве дочерних элементы price, title и artist. Во время обмена документами XML-схема описывает контракт между производителем и потребителем XML, поскольку она описывает то, что составляет действительное XML-сообщение передаваемое между двумя сторонами. Хотя для XML существует несколько языков схемы, от DTD до XDR, ведущим является Язык описания XML-схемы W3C (W3C XML Schema Definition Language), сокращенно XSD.

XSD уникален среди языков XML-схемы, потому что он первым пытается вывести роль XML-схемы за рамки традиционного ее применения для описания контракта между двумя сущностями, обменивающимися документами. XSD представляет концепцию Post Schema Validation Infoset (PSVI). Совместимый XSD-обработчик принимает XML Infoset как входные данные и после проверки преобразовывает его в Информационное множества после проверки схемы (PSVI). PSVI — это исходные входные данные XML Infoset с добавленными к существующим новыми единицами информации и новыми свойствами. В Рекомендации XML-схема W3C приведен список дополнений в Информационное множества после проверки схемы (PSVI).

Одним важным классом дополнений PSVI является аннотации типов. Элементы и атрибуты получают строгий контроль типов и имеют ассоциированную информацию о типе данных. Такие XML со строгим контролем типов весьма универсальны, потому что теперь они с помощью таких технологий как XmlSerializer (http://msdn.microsoft.com/library/en-us/dnexxml/html/xml01202003.asp) из .NET Framework могут быть преобразованы в объекты, с помощью технологий SQLXML (http://msdn.microsoft.com/sqlxml) и DataSet (http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataDataSetClassTopic.asp) из .NET Framework они могут быть преобразованы в реляционные таблицы или их можно обработать с помощью языков запросов XML, таких как XPath 2.0 и XQuery, которые используют преимущество строгого контроля типов.

Ниже показан пример фрагмента схемы, который описывает элемент items документа-образца, приведенного в разделе Анатомия XML-документа.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="items">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="compact-disc" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

<xs:element name="compact-disc">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="price" type="xs:decimal" />
      <xs:element name="artist" type="xs:string" />
      <xs:element name="title" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>

API, использующие модель дерева
Древовидная модель API представляет XML-документ как дерево узлов, которые обычно загружаются в память все сразу. Самая популярная древовидная модель API для XML — Объектная модель документа W3C (W3C Document Object Model — DOM). DOM обеспечивает возможность программно читать, манипулировать и изменять XML-документ.

Ниже приведен пример использования класса XmlDocument (http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXmlDocumentClassTopic.asp) в .NET Framework для получения имени исполнителя и названия первого compact-disc в элементе items.

using System; 
using System.Xml; 

public class Test{

  public static void Main(string[] args){

    XmlDocument doc = new XmlDocument(); 
    doc.Load("test.xml"); 

    XmlElement firstCD = (XmlElement) doc.DocumentElement.FirstChild;
XmlElement artist  = 
(XmlElement) firstCD.GetElementsByTagName("artist")[0];
    XmlElement title   =
(XmlElement) firstCD.GetElementsByTagName("title")[0]

    Console.WriteLine("Artist={0}, Title={1}", artist.InnerText, title.InnerText);
  }
}

Курсорные API в XML можно представить как лупу, которая проходит по XML-документу, согласно указаниям фокусируясь на отдельных аспектах документа. Класс XPathNavigator в .NET Framework — это пример курсорного API в XML. Преимущество курсорных API над древовидной моделью API в том, что для них не требуется, чтобы весь XML-документ был загружен в память, что открывает двери оптимизациям со стороны создателя XML, в которых документ загружается «по мере надобности».

Вот пример использования класса XPathNavigator (http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXPathXPathNavigatorClassTopic.asp) в .NET Framework для получения имени исполнителя и названия первого compact-disc в элементе items.

using System; 
using System.Xml; 
using System.Xml.XPath; 

public class Test{

  public static void Main(string[] args){

    XmlDocument doc = new XmlDocument(); 
    doc.Load("test.xml"); 

    XPathNavigator nav = doc.CreateNavigator(); 

    nav.MoveToFirstChild(); //переходит от корневого элемента к элементу документа (items)
    nav.MoveToFirstChild(); // переходит от элемента items к первому элементу compact-disc
    
    // переходит от элемента compact-disc к элементу artist
    nav.MoveToFirstChild();
    nav.MoveToNext(); 
    string artist = nav.Value; 

    // переходит от элемента artist к элементу title
    nav.MoveToNext(); 
    string title = nav.Value; 

    Console.WriteLine("Artist={0}, Title={1}", artist, title);
  }
}

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

Передающие синтаксические анализаторы, такие как SAX, проходят по XML-потоку, а затем при встрече с XML-узлами «выталкивают» события в зарегистрированные обработчики событий (методы обратного вызова). Принимающие анализаторы, такие как класс XmlReader (http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXmlReaderClassTopic.asp) в .NET Framework, работают в XML-потоке как однонаправленные курсоры.

Ниже представлен пример использования класса XmlReader в .NET Framework для получения имени исполнителя и названия первого compact-disc в элементе items.

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

Передающие синтаксические анализаторы, такие как SAX, проходят по XML-потоку, а затем при встрече с XML-узлами «выталкивают» события в зарегистрированные обработчики событий (методы обратного вызова). Принимающие анализаторы, такие как класс XmlReader (http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXmlReaderClassTopic.asp) в .NET Framework, работают в XML-потоке как однонаправленные курсоры.

Ниже представлен пример использования класса XmlReader в .NET Framework для получения имени исполнителя и названия первого compact-disc в элементе items.
В некоторых случаях может быть слишком сложно извлечь информацию из XML-документа с помощью API или по причине нетривиальности критерия поиска данных, или из-за того, что API не удается раскрыть определенные аспекты XML-документа, поддающиеся определенным запросам. Языки XML-запросов, такие как XPath 1.0 и будущий XQuery, обеспечивают богатые механизмы извлечения информации и информационных множеств XML.

Вот пример, показывающий, как использовать XPath для получения имени исполнителя и названия первого compact-disc в элементе items.
using System; 
using System.Xml.XPath; 

public class Test{

  public static void Main(string[] args){
    
    XPathDocument doc   = new XPathDocument("test.xml"); 
    XPathNavigator nav  = doc.CreateNavigator(); 

    XPathNodeIterator iterator = 
nav.Select("/items/compact-disc[1]/artist | /items/compact-disc[1]/title");

    iterator.MoveNext();
    Console.WriteLine("Artist={0}", iterator.Current);

    iterator.MoveNext();
    Console.WriteLine("Title={0}", iterator.Current);

  }
}

Часто надо преобразовать XML-документы из одного словаря в другой. Иногда так можно сгенерировать их в готовом для печати формате или в Web-браузере; также с помощью преобразования можно превратить документы, полученные извне, в более привычный формат.

XSLT (http://www.w3.org/TR/xslt) — первый язык XML-преобразования. Преобразование, выраженное в XSLT, описывает правила преобразования исходного дерева в результирующее дерево. Преобразование достигается путем ассоциирования шаблонов. Шаблон — это выражение XPath, может рассматриваться как регулярное выражение, ставящее части исходного дерева XML в соответствие частям строки. Шаблон ставится в соответствие элементам исходного дерева. В случаях совпадения создается экземпляр шаблона для создания части результирующего дерева. При создании результирующего дерева элементы исходного дерева могут быть отфильтрованы и реорганизованы, а произвольная структура может быть добавлена.

Следующая таблица стилей XSLT преобразовывает элемент items в Web-страницу XHTML, содержащую таблицу с информацией о компакт дисках.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0" xmlns="http://www.w3.org/1999/xhtml">

<xsl:output method="xml" indent="yes"
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" />


    <xsl:template match="/">

    <html lang="en" xml:lang="en">
     <head>
      <title>Order Information - ord123456</title>
     </head>
     <body>
       <table border="1">
        <tr><th>Artist</th><th>Title</th><th>Price</th></tr>

        <xsl:for-each select="items/compact-disc">
        <tr>
        <td><xsl:value-of xmlns="" select="artist" /></td>
        <td><xsl:value-of xmlns="" select="title" /></td>
        <td><xsl:value-of xmlns="" select="price" /></td>
        </tr>
        </xsl:for-each>

       </table>
     </body>     
    </html>
     
   </xsl:template>

</xsl:stylesheet>

XHTML-документ, созданный с использованием этой таблицы стилей, показан ниже:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Order Information - ord123456</title>
  </head>
  <body>
    <table border="1">
      <tr>
        <th>Artist</th>
        <th>Title</th>
        <th>Price</th>
      </tr>
      <tr>
        <td>Nelly</td>
        <td>Nellyville</td>
        <td>16.95</td>
      </tr>
      <tr>
        <td>Baby D</td>
        <td>Lil Chopper Toy</td>
        <td>17.55</td>
      </tr>
    </table>
  </body>
</html>

XML — это больше, чем просто текстовый формат для описания документов. Это механизм для описания структурированных и псевдоструктурированных данных, который обеспечивает доступ к богатому семейству технологий обработки таких данных. Мощные абстракции, такие как Информационное множество XML, открывают двери к обработке нетекстовых данных, таких как файловые системы, реестр Windows®, реляционные базы данных и даже объекты языков программирования, с помощью XML-технологий. XML еще на один шаг приблизил нас к универсальному доступу к данным.

  • ObjectXPathNavigator — http://msdn.microsoft.com/library/en-us/dnexxml/html/xml03172003.asp
  • XmlSerializer — http://msdn.microsoft.com/library/en-us/dnexxml/html/xml01202003.asp
  • SQLXML — http://msdn.microsoft.com/sqlxml
  • DataSet — http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemDataDataSetClassTopic.asp
  • XmlDocument — http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXmlDocumentClassTopic.asp
  • XPathNavigator — http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXPathXPathNavigatorClassTopic.asp
  • XmlReader — http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXmlReaderClassTopic.asp
  • XSLT — http://www.w3.org/TR/xslt

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

В этой статье

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

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

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

  • Схемы

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

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

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

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

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

Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например <p> и <h2>. В 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-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.

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

Схемы позволяют приложениям использовать XML-данные совместно.

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов <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. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.

Основная структура 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 – язык разметки. С помощью него пользователи группируют, структурируют данные, которые представлены в виде обычного текста или таблицы. Для создания структуры (иерархии) используют самописный синтаксис – теги. Их придумывает сам автор документа. На рисунке ниже показан текст, обернутый в произвольные теги: <to> (от кого послание), <from> (кому), <heading> (заголовок послания), <body> (само послание).

теги xml

Язык XML используют для передачи данных между разными видами приложений без потери их структуры. Формат отличается надежностью. Повредить информацию в таких файлах сложнее, поэтому документы, которые публикуют в интернете, часто идут именно с этим расширением. Файлы xml встречаются на ГосУслугах, в Росреестре и на других государственных сайтах.

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

Только просмотр текста/таблицы доступен в любом браузере, в Microsoft Word и Excel. Редактировать файл можно в онлайн-сервисах и в стандартном «Блокноте» в Windows.

пример xml файла

Программы для просмотра и редактирования файлов XML

Программы Microsoft Office есть практически на каждом компьютере с Windows, поэтому часто для запуска xml не нужно ничего дополнительно устанавливать.

Если Офиса у вас нет, и вы не хотите скачивать целый пакет, чтобы открыть один единственный файл, воспользуйтесь «Блокнотом» или сторонним приложением NotePad++.

Word

Чтобы установить Word на ПК, нужно скачать целый пакет Microsoft Office, где будет сам текстовый редактор, Excel (для работы с таблицами) и Power Point (для создания презентаций).

Не все версии Microsoft Word умеют открывать документы xml без тегов. Подойдут варианты Word 2007 и выше. Версии ниже показывают информацию только с тегами.

В Word вы сможете просматривать текст, отправлять его на печать в принтер. Редактирование документа здесь недоступно.

Как открыть файл XML в Word:

  1. Нажмите правой кнопкой мыши на файл xml – при этом не важно, где он находится: на рабочем столе или в папке на жестком диске.контекстное меню открыть с помощью
  2. Наведите стрелку на пункт «Открыть с помощью». Выберите программу Word. Если ее нет в списке, нажмите «Выбрать другое приложение».word или выбрать другое приложение
  3. В появившемся меню нажмите на «Microsoft Word». При желании поставьте галочку под списком приложений, чтобы система открывала xml-файлы с помощью Word. Щелкните по «ОК».каким образом вы хотите открыть этот файл
  4. Подождите, пока запустится файл с текстом.открытие xml в ворде

Excel

Если данные документа представлены в виде таблицы, используйте другую программу из пакета Microsoft Office – инструмент Excel.

Открыть документ в Excel можно таким же образом, как и в Word. Кликнуть по файлу правой клавишей, а затем в списке «Открыть с помощью» выбрать Excel.

Если Excel в списке не оказалось, используйте другой метод запуска:

  1. Если у вас Windows 10, нажмите на иконку в виде лупы справа от кнопки «Пуск». Вбейте в поисковую строку слово «excel».excel в поисковой строке
  2. В верхней области панели появятся результаты поиска – нажмите на «Microsoft Excel», чтобы запустить программу.запуск excel 2010
  3. В интерфейсе приложения нажмите на «Файл». Выберите пункт «Открыть».открытие xml файла в экселе
  4. В «Проводнике Windows» найдите документ xml. Выделите его левой кнопкой мыши и нажмите «Открыть».выбор нужного файла
  5. Выберите способ открытия файла, например, XML-таблица. Нажмите на «ОК».выбор способа открытия файла
  6. Подождите, пока загрузится таблица. Если она большая, процесс займет некоторое время.xml таблица в excel

Стандартный «Блокнот»

В «Блокноте» откроется текст, обернутый в теги. При необходимости вы сможете его отредактировать в окне.

Запустить файл можно через то же контекстное меню документа. Выбираете «Открыть с помощью», нажимаете на «Блокнот».

открыть с помощью стандартного блокнота

Если «Блокнота» в списке приложений не оказалось, используйте другой способ:

  1. Откройте пустое окно «Блокнота». Для этого найдите программу через поиск Windows 10. Введите название приложения в строке поиска – выберите «Блокнот» в результатах запроса.блокнот в поисковой строке windows 10
  2. Теперь зажмите мышкой файл xml (на рабочем столе либо в папке в «Проводнике») и перетащите его на пустое окно «Блокнота».перетаскивание xml файла в блокнот
  3. Подождите, пока документ откроется.xml файл в блокноте

Через Google Chrome и другие браузеры

Для Google Chrome и любого другого браузера действует тот же способ запуска: через пункт «Открыть с помощью» в контекстном меню файла. Можно выбрать «Гугл Хром» или любой другой веб-обозреватель: Internet Explorer, Yandex, Opera  и т. д.

открыть с помощью explorer или yandex

Еще один способ – перетаскивание файла на окно браузера. Откройте новую пустую вкладку обозревателя (обычно это иконка в виде плюса на панели с вкладками). Перетащите файл xml мышкой на любую область пустой вкладки.

добавление xml файла в Chrome

Подождите, пока браузер загрузит документ в свое окно.

xml во вкладке браузера

NotePad++

В NotePad++ можно читать и редактировать готовые xml-документы, а также создавать новые. Приложение также работает с другими форматами веб-файлов, например, с YML.

При установке программы можно выбрать русский язык интерфейса. Плюс NotePad++ в том, что она выделяет корневую структуру кода, что упрощает работу с документом. В «Блокноте», к примеру, теги идут чуть ли не сплошным текстом.

Как открыть XML-файл в NotePad++:

  1. Запустите приложение и нажмите на раздел «File» («Файл»). В меню выберите «Open» («Открыть»).open file
  2. Либо сразу после запуска программы зажмите комбинации клавиш Ctrl + O. Также можно нажать на вторую иконку «Open» на панели инструментов, которая находится чуть ниже.иконка open на панели инструментов
  3. В «Проводнике Windows» найдите документ xml. Выберите его левой кнопкой мыши и нажмите на «Открыть».
  4. Подождите, пока загрузится файл со структурой кода.xml файл со структурой кода в notepad plus plus

Онлайн-сервисы для редактирования файлов XML

Для работы онлайн-сервисов понадобится стабильный скоростной интернет. Рассмотрим два инструмента: XML Grid и TutorialsPoint.

XmlGrid

Сервис простой и функциональный. Здесь можно создавать свои файлы xml, редактировать готовые документы. Документ можно загрузить двумя способами: вставить ссылку на файл в интернете либо загрузить физический документ с жесткого диска ПК.

Интерфейс у сервиса на английском языке, но разобраться в нем сможет каждый:

  1. Откройте веб-сервис. Нажмите на «Open File», если документ находится на жестком диске вашего ПК. В «Проводнике Windows» найдите файл, выделите его левой кнопкой мыши – нажмите «Открыть».открытие файла в XmlGrid
  2. Кликните «Submit», чтобы система начала загрузку файла. Подождите некоторое время, пока она завершится.
  3. Если у вас есть ссылка на файл в интернете, кликните по «By URL». Вставьте скопированную ссылку в поле и нажмите «Submit».by url
  4. Подождите, пока откроется структура файла (список главных веток).список главных веток файла
  5. Чтобы изменить название ветки, просто нажмите на ее название. Включится режим редактирования: удалите старую надпись и введите новую.редактирование ветки xml файла
  6. Чтобы отредактировать текст, откройте  ветку, в которой он находится. Для этого нажмите на стрелку слева от ее названия. Теперь выберите левой кнопкой синее поле для редактирования.выбор поля для редактирования
  7. Выберите пункт «Edit» в контекстном меню.edit в контекстном меню
  8. Введите нужный текст в синее поле.ввод текста в тег title
  9. Чтобы увидеть результат редактирования (структуру текста в целом), нажмите на стрелку над таблицей.стрелка над таблицей
  10. В меню выберите «Show XML Source Code».пункт Show XML Source Code
  11. Подождите, пока откроется дополнительное окно с текстом и тегами. Чтобы закрыть окно, нажмите на крестик в правом верхнем углу.окно с текстом и тегами
  12. Когда закончите редактирование, нажмите на иконку «Save» справа от кнопок «Validate» и «Textview». Выберите папку на жестком диске для сохранения файла.

TutorialsPoint

Сервис  работает с множеством файлов: XML-документы, изображения, программные коды. Интерфейс тоже на английском языке.

Как работать в сервисе:

  1. Перейдите на сайт инструмента. Выберите кнопку «XML Editor».кнопка XML Editor
  2. Нажмите на «Upload File». Выберите способ загрузки с помощью URL (ссылка на файл в интернете) либо загрузка документа с ПК («Upload from Computer»). В первом случае вставьте скопированную ранее ссылку и нажмите «Go». Во втором случае выберите файл в окне «Проводник Windows» и нажмите «Открыть».загрузка файла с компьютера или по url
  3. В разделе «Editable XML Code» появится содержимое файла xml. В нем  можно менять текст и теги как в обычном редакторе.раздел Editable XML Code
  4. По мере редактирования в правой части окна «XML Tree» данные тоже меняются: вместо старого текста и тегов появляются новые. Этот режим удобно использовать для визуальной оценки файла.окно XML Tree
  5. Когда закончите редактирование, нажмите на «Download» справа вверху, чтобы скачать измененный документ обратно на ПК.скачивание измененного xml документа

Если вам нужно лишь прочитать содержимое файла xml, выбирайте браузер, Word или Excel (если документ представлен в виде таблицы, а не обычным текстом). Для редактирования можно использовать стандартный «Блокнот», стороннюю программу NotePad++ либо онлайн-сервисы: XML Grid или TutorialsPoint.

Создаём XML-файл

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

Немного об XML

Сам по себе XML — это язык разметки, чем-то похожий на HTML, который используется на веб-страницах. Но если последний применяется только для вывода информации и её правильной разметки, то XML позволяет её структурировать определённым образом, что делает этот язык чем-то похожим на аналог базы данных, который не требует наличия СУБД.

Создавать XML-файлы можно как при помощи специализированных программ, так и встроенным в Windows текстовым редактором. От вида используемого ПО зависит удобство написания кода и уровень его функциональности.

Способ 1: Visual Studio

Вместо этого редактора кода от Microsoft можно использовать любой его аналог от других разработчиков. По факту Visual Studio является более расширенной версией обычного «Блокнота». Код теперь имеет специальную подсветку, ошибки выделяются или исправляются автоматически, также в программу уже загружены специальные шаблоны, которые позволяют упростить создание XML-файлов больших объёмов.

Для начала работы вам нужно создать файл. Нажмите по пункту «Файл» в верхней панели и из выпадающего меню выберите «Создать…». Откроется список, где указывается пункт «Файл».

Создание документа в MS Visual Studio

  • Вас перебросит в окно с выбором расширения файла, соответственно выбирайте пункт «XML-файл».
  • Создание XML-файла в MS Visual Studio

    В только что созданном файле уже будет первая строка с кодировкой и версией. По умолчанию прописана первая версия и кодировка UTF-8, которые вы можете поменять в любое время. Дальше для создания полноценного XML-файла вам нужно прописать всё то, что было в предыдущей инструкции.

    По завершении работы снова выберите в верхней панели «Файл», а там из выпадающего меню пункт «Сохранить всё».

    Способ 2: Microsoft Excel

    Можно создать XML-файл и не прописывая код, например, при помощи современных версий Microsoft Excel, который позволяет сохранять таблицы с данным расширением. Однако нужно понимать, что в этом случае создать что-то более функциональное обычной таблицы не получится.

    Такой способ больше подойдёт тем, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с определёнными проблемами при перезаписи файла в XML-формат. К сожалению, проделать операцию преобразования обычной таблицы в XML можно только на самых новых версиях MS Excel. Чтобы это сделать, используйте следующую пошаговую инструкцию:

    1. Заполните таблицу каким-либо контентом.
    2. Нажмите на кнопку «Файл», что в верхнем меню.
    3. Заполняем таблицу Excel

    4. Откроется специальное окно, где нужно нажать на «Сохранить как…». Этот пункт можно найти в левом меню.
    5. Сохранение таблицы

    6. Укажите папку, куда необходимо сохранить файл. Папка указывается в центральной части экрана.
    7. Выбор места сохранения

    8. Теперь вам нужно указать название файла, а в разделе «Тип файла» из выпадающего меню выбрать
      «XML-данные».
    9. Нажмите на кнопку «Сохранить».
    10. Выбор XML-формата

    Способ 3: Блокнот

    Для работы с XML вполне подойдёт даже обычный «Блокнот», однако пользователю, который не знаком с синтаксисом языка, придётся трудно, так как в нём нужно прописывать различные команды и теги. Несколько проще и значительно продуктивнее процесс будет идти в специализированных программах для редактирования кода, например, в Microsoft Visual Studio. В них есть специальная подсветка тегов и всплывающие подсказки, что значительно упрощает работу человеку, плохо знакомому с синтаксисом этого языка.

    Для этого способа не потребуется что-либо скачивать, так как в операционную систему уже встроен «Блокнот». Давайте попробуем сделать в нём простую XML-таблицу по данной инструкции:

    1. Создайте обычный текстовый документ с расширением TXT. Разместить его можно где угодно. Откройте его.
    2. Создание XML-файла

    3. Начните прописывать в нём первые команды. Для начала нужно задать всему файлу кодировку и указать версию XML, делается это следующей командой:

      <?xml version="1.0" encoding="utf-8"?>

      Первое значение — это версия, её менять не обязательно, а второе значение — это кодировка. Рекомендуется использовать кодировку UTF-8, так как большинство программ и обработчиков работают с ней корректно. Однако её можно изменить на любую другую, просто прописав нужное название.

    4. Задаём кодировку

    5. Создайте первый каталог в вашем файле, прописав тег <root> и закрыв его таким образом </root>.
    6. Внутри этого тега теперь можно написать какой-нибудь контент. Создадим тег <Employee> и присвоим ему любое имя, например, «Иван Иванов». Готовая структура должна быть такой:

      <Employee name="Иван Иванов">

    7. Внутри тега <Employee> теперь можно прописать более подробные параметры, в данном случае это информация о неком Иване Иванове. Пропишем ему возраст и должность. Выглядеть это будет так:

      <Age>25</Age>
      <Programmer>True</Programmer>

    8. Если вы следовали инструкции, то у вас должен получиться такой же код, как ниже. По завершении работы в верхнем меню найдите «Файл» и из выпадающего меню выберите «Сохранить как…». При сохранении в поле «Имя файла» после точки должно стоять расширение не TXT, а XML.
    9. Сохранение XML-документа

    Примерно так у вас должен выглядеть готовый результат:


    <?xml version="1.0" encoding="utf-8"?>
    <root>
    <Employee name="Иван Иванов">
    <Age>25</Age>
    <Programmer>True</Programmer>
    </Employee>
    </root>

    Готовый документ

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

    В «Блокноте» вполне можно сделать несложные таблицы наподобие этой, но при создании более объёмных массивов данных могут возникнуть сложности, так как в обычном «Блокноте» нет функций исправления ошибок в коде или их подсветки.

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

    ЗакрытьМы рады, что смогли помочь Вам в решении проблемы.

    ЗакрытьОпишите, что у вас не получилось.
    Наши специалисты постараются ответить максимально быстро.

    Помогла ли вам эта статья?

    ДА НЕТ

    Extensible Markup Language ( XML ) — это язык разметки, который определяет набор правил для кодирования документов в формате, который удобен для чтения человеком и компьютером . World Wide Web Consortium «s XML 1.0 Спецификация 1998 года и ряд других связанных с ними спецификаций, все они свободно открытые стандарты -define XML.

    Цели разработки XML подчеркивают простоту, универсальность и удобство использования в Интернете . Это текстовый формат данных с сильной поддержкой Unicode для разных человеческих языков . Хотя дизайн XML ориентирован на документы, этот язык широко используется для представления произвольных структур данных, таких как те, что используются в веб-сервисах .

    Существует несколько систем схем, помогающих в определении языков на основе XML, в то время как программисты разработали множество интерфейсов прикладного программирования (API) для помощи в обработке данных XML.

    Приложения

    Суть того, почему необходимы расширяемые языки разметки, объясняется в разделе Язык разметки (например, см. Язык разметки § XML ) и в Стандартном обобщенном языке разметки .

    Были разработаны сотни форматов документов с использованием синтаксиса XML, включая RSS , Atom , SOAP , SVG и XHTML . XML-форматы на основе стали по умолчанию для многих инструментов офисно-производительности, в том числе Microsoft Office ( Office Open XML ), OpenOffice.org и LibreOffice ( OpenDocument ), и Apple , «s iWork . XML также предоставил базовый язык для протоколов связи, таких как XMPP . Приложения для Microsoft .NET Framework используют файлы XML для конфигурации, а списки свойств представляют собой реализацию хранилища конфигурации, построенного на XML.

    Многие отраслевые стандарты данных, такие как Health Level 7 , OpenTravel Alliance , FpML , MISMO и Национальная модель обмена информацией , основаны на XML и разнообразных функциях спецификации схемы XML. Многие из этих стандартов довольно сложны, и нередко спецификации содержат несколько тысяч страниц. В публикациях Darwin Information Typing Architecture является отраслевым стандартом данных XML. XML широко используется для поддержки различных форматов публикации.

    XML широко используется в сервис-ориентированной архитектуре (SOA). Разрозненные системы взаимодействуют друг с другом посредством обмена XML-сообщениями. Формат обмена сообщениями стандартизирован как схема XML (XSD). Это также называется канонической схемой. XML стал широко использоваться для обмена данными через Интернет. IETF RFC: 3023 , который теперь заменен RFC: 7303 , дал правила для создания Интернет-типов мультимедиа для использования при отправке XML. Он также определяет типы мультимедиа application/xmlи text/xml, которые говорят только о том, что данные находятся в XML, и ничего не о его семантике .

    RFC 7303 также рекомендует давать языкам на основе XML типы носителей, оканчивающиеся на +xml; например image/svg+xmlдля SVG . Дополнительные рекомендации по использованию XML в сетевом контексте содержатся в RFC 3470, также известном как IETF BCP 70, документе, охватывающем многие аспекты разработки и развертывания языка на основе XML.

    Ключевые термины

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

    Характер

    XML-документ — это строка символов . Почти каждый допустимый символ Unicode может появиться в XML-документе.

    Процессор и приложение

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

    Разметка и контент

    Символы, составляющие XML-документ, делятся на разметку и содержимое , которые можно различить, применяя простые синтаксические правила. Как правило, строки, составляющие разметку, либо начинаются с символа <и заканчиваются на >, либо начинаются с символа &и заканчиваются на ;. Строки символов, не являющиеся разметкой, являются содержимым. Однако в разделе CDATA разделители <![CDATA[и ]]>классифицируются как разметка, а текст между ними классифицируется как контент. Кроме того, пробелы до и после самого внешнего элемента классифицируются как разметка.

    Ярлык

    Тег является Разметка конструкция , которая начинается с <и заканчивается >. Есть три типа тегов:

    • начальный тег , например <section>;
    • конечный тег , например </section>;
    • тег пустого элемента , например <line-break />.

    Элемент

    Элемент представляет собой логический компонент документа , который либо начинается с начальным тегом и заканчивается соответствующим конечным тегом или состоит только из пустого элемента тега. Символы между начальным и конечным тегами, если они есть, являются содержимым элемента и могут содержать разметку, включая другие элементы, которые называются дочерними элементами . Пример такой <greeting>Hello, world!</greeting>. Другой <line-break />.

    Атрибут

    Атрибут является разметка конструкция , состоящая из пары имя-значение , которое существует в пределах стартового тега или пустого элемента тега. Например <img src="madonna.jpg" alt="Madonna" />, имена атрибутов — «src» и «alt», а их значения — «madonna.jpg» и «Madonna» соответственно. Другой пример: <step number="3">Connect A to B.</step>имя атрибута — «число», а его значение — «3». Атрибут XML может иметь только одно значение, и каждый атрибут может появляться не более одного раза в каждом элементе. В обычной ситуации, когда требуется список из нескольких значений, это должно быть сделано путем кодирования списка в правильно сформированный атрибут XML с некоторым форматом, выходящим за рамки того, что XML определяет сам. Обычно это список, разделенный запятой или точкой с запятой, или, если известно, что отдельные значения не содержат пробелов, можно использовать список, разделенный пробелами. <div class="inner greeting-box">Welcome!</div>, где атрибут «class» имеет значение «внутреннее поле приветствия», а также указывает два имени класса CSS «внутреннее» и «поле приветствия».

    Декларация XML

    Документы XML могут начинаться с объявления XML, которое описывает некоторую информацию о себе. Пример такой <?xml version="1.0" encoding="UTF-8"?>.

    Персонажи и побег

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

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

    Допустимые символы

    Кодовые точки Unicode в следующих диапазонах действительны в документах XML 1.0:

    • U + 0009 (горизонтальная табуляция), U + 000A (перевод строки), U + 000D (возврат каретки): это единственные элементы управления C0, принятые в XML 1.0;
    • U + 0020 – U + D7FF, U + E000 – U + FFFD: исключает некоторые несимволы в BMP (все суррогаты, U + FFFE и U + FFFF запрещены);
    • U + 10000 – U + 10FFFF: сюда входят все кодовые точки в дополнительных плоскостях, включая несимвольные.

    XML 1.1 расширяет набор разрешенных символов, чтобы включить все вышеперечисленное, а также оставшиеся символы в диапазоне U + 0001 – U + 001F. Однако в то же время он ограничивает использование управляющих символов C0 и C1, кроме U + 0009 (горизонтальная табуляция), U + 000A (перевод строки), U + 000D (возврат каретки) и U + 0085 (следующая строка). ), требуя, чтобы они были записаны в экранированной форме (например, U + 0001 должен быть записан как &#x01;или его эквивалент). В случае символов C1 это ограничение является обратной несовместимостью; он был введен, чтобы позволить обнаруживать распространенные ошибки кодирования.

    Кодовая точка U + 0000 (Null) — единственный символ, который не разрешен ни в одном документе XML 1.0 или 1.1.

    Обнаружение кодировки

    Набор символов Unicode может быть закодирован в байты для хранения или передачи множеством различных способов, называемых «кодировками». Сам Unicode определяет кодировки, охватывающие весь репертуар; к хорошо известным относятся UTF-8 и UTF-16 . Есть много других кодировок текста, предшествующих Unicode, например ASCII и ISO / IEC 8859 ; их репертуар символов почти в каждом случае является подмножеством набора символов Unicode.

    XML позволяет использовать любую кодировку, определенную в Unicode, и любые другие кодировки, символы которых также присутствуют в Unicode. XML также предоставляет механизм, с помощью которого процессор XML может надежно, без каких-либо предварительных знаний, определять, какая кодировка используется. Кодировки, отличные от UTF-8 и UTF-16, не обязательно распознаются каждым анализатором XML.

    Побег

    XML предоставляет средства экранирования для включения символов, которые проблематично включить напрямую. Например:

    • Символы «<» и «&» являются ключевыми маркерами синтаксиса и могут никогда не появляться в содержимом за пределами раздела CDATA . Разрешено, но не рекомендуется использовать «<» в значениях сущности XML.
    • Некоторые кодировки символов поддерживают только подмножество Unicode. Например, допустимо кодировать XML-документ в ASCII, но в ASCII отсутствуют кодовые точки для символов Юникода, таких как «é».
    • Возможно, не удастся набрать символ на машине автора.
    • Некоторые символы имеют глифы, которые нельзя визуально отличить от других символов, например неразрывный пробел ( &#xa0;) «» и пробел ( &#x20;) «», а также заглавную кириллическую букву A ( &#x410;) «А» и заглавную латинскую букву A ( &#x41;) «А».

    Есть пять предопределенных сущностей :

    • &lt; представляет собой «<«;
    • &gt; представляет «>»;
    • &amp; представляет «&»;
    • &apos;представляет собой » «;
    • &quot;представляет » « «.

    Все разрешенные символы Unicode могут быть представлены ссылкой на числовые символы . Рассмотрим китайский символ «中», числовой код которого в Юникоде — шестнадцатеричный 4E2D или десятичный 20 013. Пользователь, чья клавиатура не предлагает метода для ввода этого символа, все равно может вставить его в XML-документ, закодированный как &#20013;или &#x4e2d;. Точно так же строка «I <3 Jörg» может быть закодирована для включения в XML-документ как I &lt;3 J&#xF6;rg.

    &#0;однако не разрешено, поскольку нулевой символ является одним из управляющих символов, исключенных из XML, даже при использовании ссылки на числовой символ. Для представления таких символов необходим альтернативный механизм кодирования, такой как Base64 .

    Комментарии могут появляться в любом месте документа за пределами другой разметки. Комментарии не могут появляться перед объявлением XML. Комментарии начинаются <!--и заканчиваются -->. Для совместимости с SGML строка «-» (двойной дефис) не допускается внутри комментариев; это означает, что комментарии не могут быть вложенными. Амперсанд не имеет особого значения в комментариях, поэтому ссылки на сущности и символы не распознаются как таковые, и нет способа представить символы вне набора символов кодировки документа.

    Пример правильного комментария:
    <!--no need to escape <code> & such in comments-->

    Международное использование

    XML 1.0 (пятое издание) и XML 1.1 поддерживают прямое использование практически любого символа Unicode в именах элементов, атрибутах, комментариях, символьных данных и инструкциях обработки (кроме тех, которые имеют особое символическое значение в самом XML, например, меньшее -чем знак «<«). Ниже представлен правильно сформированный XML-документ, включающий китайские , армянские и кириллические символы:

    <?xml version="1.0" encoding="UTF-8"?>
    <俄语 լեզու="ռուսերեն">данные</俄语>
    

    Синтаксическая корректность и обработка ошибок

    Спецификация XML определяет XML-документ как правильно сформированный текст, что означает, что он удовлетворяет списку синтаксических правил, предоставленных в спецификации. Некоторые ключевые моменты в довольно длинном списке включают:

    • Документ содержит только правильно закодированные допустимые символы Unicode.
    • Ни один из специальных синтаксических символов, таких как <и, не &появляется, кроме как при выполнении своих ролей разметки и разметки.
    • Начальный тег, конечный тег и тег пустого элемента, которые разделяют элементы, правильно вложены, ни один из них не пропущен и не перекрывается.
    • Имена тегов чувствительны к регистру; начальный и конечный теги должны точно совпадать.
    • Имена тегов не могут содержать никаких символов! «# $% & ‘() * +, /; <=>? @ [] ^` {|} ~, Ни пробела, и не могут начинаться с «-«, «.» или числовая цифра.
    • Один корневой элемент содержит все остальные элементы.

    Определение XML-документа исключает тексты, содержащие нарушения правил корректности; они просто не XML. Обработчик XML, обнаруживший такое нарушение, должен сообщить о таких ошибках и прекратить нормальную обработку. Эта политика, иногда называемая « драконовской обработкой ошибок», заметно контрастирует с поведением программ, обрабатывающих HTML , которые предназначены для получения разумного результата даже при наличии серьезных ошибок разметки. Политика XML в этой области подвергалась критике как нарушение закона Постела («Будьте консервативны в том, что вы отправляете; будьте либеральны в том, что вы принимаете»).

    Спецификация XML определяет действительный XML-документ как правильно сформированный XML-документ, который также соответствует правилам определения типа документа (DTD).

    Схемы и проверка

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

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

    DTD — это пример схемы или грамматики . С момента первой публикации XML 1.0 была проделана значительная работа в области языков схем для XML. Такие языки схем обычно ограничивают набор элементов, которые могут использоваться в документе, какие атрибуты могут быть применены к ним, порядок, в котором они могут появляться, и допустимые отношения родитель / потомок.

    Определение типа документа

    Самый старый язык схем для XML — это определение типа документа (DTD), унаследованное от SGML.

    DTD имеют следующие преимущества:

    • Поддержка DTD повсеместна благодаря его включению в стандарт XML 1.0.
    • DTD являются краткими по сравнению с языками схем на основе элементов и, следовательно, представляют больше информации на одном экране.
    • DTD позволяют объявлять стандартные наборы общедоступных объектов для публикации символов.
    • DTD определяют тип документа, а не типы, используемые пространством имен, таким образом группируя все ограничения для документа в единую коллекцию.

    DTD имеют следующие ограничения:

    • У них нет явной поддержки новых функций XML, особенно пространств имен .
    • Им не хватает выразительности. XML DTD проще, чем SGML DTD, и есть определенные структуры, которые нельзя выразить с помощью обычных грамматик. DTD поддерживают только элементарные типы данных.
    • Им не хватает читабельности. Разработчики DTD обычно интенсивно используют сущности параметров (которые, по сути, ведут себя как текстовые макросы ), что упрощает определение сложных грамматик, но за счет ясности.
    • Для описания схемы они используют синтаксис, основанный на синтаксисе регулярных выражений , унаследованном от SGML. Типичные XML API, такие как SAX , не пытаются предложить приложениям структурированное представление синтаксиса, поэтому он менее доступен для программистов, чем может быть синтаксис на основе элементов.

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

    Технология DTD по-прежнему используется во многих приложениях из-за ее повсеместного распространения.

    Схема

    Более новый язык схем, описанный консорциумом W3C как преемник DTD, — это схема XML , часто называемая инициализмом для экземпляров схемы XML, XSD (определение схемы XML). XSD гораздо более мощные, чем DTD, в описании языков XML. Они используют богатую систему типов данных и позволяют устанавливать более подробные ограничения на логическую структуру XML-документа. XSD также используют формат на основе XML, что позволяет использовать обычные инструменты XML для их обработки.

    xs: элемент схемы, определяющий схему:

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

    РЕЛАКС НГ

    RELAX NG (Regular Язык XML следующего поколения) был первоначально определено OASIS и теперь является стандартным (Часть 2: Регуляр-грамматику на основе проверки по стандарту ISO / IEC 19757 — DSDL ). Схемы RELAX NG могут быть написаны либо в синтаксисе на основе XML, либо в более компактном синтаксисе, отличном от XML; два синтаксиса изоморфны, и инструмент преобразования Джеймса Кларка — Транг — может выполнять преобразование между ними без потери информации. RELAX NG имеет более простую структуру определения и проверки, чем XML Schema, что упрощает использование и реализацию. Он также имеет возможность использовать плагины фреймворка типов данных ; например, автор схемы RELAX NG может потребовать, чтобы значения в документе XML соответствовали определениям в типах данных схемы XML.

    Схематрон

    Schematron — это язык для утверждений о наличии или отсутствии шаблонов в XML-документе. Обычно он использует выражения XPath . Schematron теперь является стандартным (Часть 3: На основе правил проверки по стандарту ISO / IEC 19757 — DSDL ).

    DSDL и другие языки схемы

    DSDL (Document Schema Definition Languages) — это многокомпонентный стандарт ISO / IEC (ISO / IEC 19757), который объединяет исчерпывающий набор небольших языков схем, каждый из которых предназначен для решения конкретных задач. DSDL включает полный и компактный синтаксис RELAX NG , язык утверждений Schematron и языки для определения типов данных, ограничений репертуара символов, переименования и расширения сущностей, а также маршрутизации фрагментов документа к различным валидаторам на основе пространства имен . Языки схем DSDL пока не имеют поддержки XML-схем поставщиками и в некоторой степени являются реакцией промышленных издателей на отсутствие полезности XML-схем для публикации .

    Некоторые языки схем не только описывают структуру определенного формата XML, но также предлагают ограниченные возможности для влияния на обработку отдельных файлов XML, соответствующих этому формату. И DTD, и XSD обладают этой способностью; они могут, например, предоставить возможность дополнения информационного набора и значения атрибутов по умолчанию. RELAX NG и Schematron намеренно не предоставляют их.

    Группа спецификаций, тесно связанных с XML, была разработана вскоре после первой публикации XML 1.0. Часто термин «XML» используется для обозначения XML вместе с одной или несколькими из этих других технологий, которые стали рассматриваться как часть ядра XML.

    • Пространства имен XML позволяют одному и тому же документу содержать элементы и атрибуты XML, взятые из разных словарей, без каких-либо конфликтов именования . Хотя пространства имен XML не являются частью самой спецификации XML, практически все программное обеспечение XML также поддерживает пространства имен XML.
    • XML Base определяет xml:baseатрибут, который может использоваться для установки базы для разрешения относительных ссылок URI в рамках одного элемента XML.
    • Информационный набор XML или XML Infoset — это абстрактная модель данных для документов XML с точки зрения информационных элементов . Информационный набор обычно используется в спецификациях языков XML для удобства описания ограничений на конструкции XML, допускаемые этими языками.
    • XSL (Extensible Stylesheet Language) — это семейство языков, используемых для преобразования и визуализации XML-документов, разделенных на три части:
    • XSLT (преобразования XSL), язык XML для преобразования документов XML в другие документы XML или другие форматы, такие как HTML, простой текст или XSL-FO. XSLT очень тесно связан с XPath, который он использует для адресации компонентов входного XML-документа, в основном элементов и атрибутов.
    • XSL-FO (объекты форматирования XSL), язык XML для визуализации XML-документов, часто используемый для создания PDF-файлов.
    • XPath (XML Path Language), не являющийся языком XML для адресации компонентов (элементов, атрибутов и т. Д.) XML-документа. XPath широко используется в других спецификациях core-XML и в библиотеках программирования для доступа к данным в кодировке XML.
    • XQuery (XML Query) — это язык запросов XML, основанный на XPath и XML Schema. Он предоставляет методы для доступа, управления и возврата XML и в основном задуман как язык запросов для баз данных XML .
    • Подпись XML определяет синтаксис и правила обработки для создания цифровых подписей для содержимого XML.
    • XML Encryption определяет синтаксис и правила обработки для шифрования содержимого XML.
    • XML-модель (Часть 11: Схема Ассоциация по ISO / IEC 19757 — DSDL ) определяет средство связывания любого XML — документа с любым из типов схем , упомянутых выше .

    Некоторые другие спецификации, задуманные как часть «ядра XML», не получили широкого распространения, в том числе XInclude , XLink и XPointer .

    Программные интерфейсы

    Цели проектирования XML включают: «Должно быть легко писать программы, обрабатывающие XML-документы». Несмотря на это, спецификация XML почти не содержит информации о том, как программисты могут выполнять такую ​​обработку. Спецификация XML Infoset предоставляет словарь для обозначения конструкций в документе XML, но не дает никаких указаний о том, как получить доступ к этой информации. Были разработаны и используются различные API-интерфейсы для доступа к XML, а некоторые из них стандартизированы.

    Существующие API-интерфейсы для обработки XML обычно попадают в следующие категории:

    • Потоковые API-интерфейсы, доступные из языков программирования, например SAX и StAX .
    • API-интерфейсы обхода дерева, доступные из языка программирования, например DOM .
    • Связывание данных XML , которое обеспечивает автоматический перевод между документом XML и объектами языка программирования.
    • Языки декларативного преобразования, такие как XSLT и XQuery .
    • Расширения синтаксиса для языков программирования общего назначения, например LINQ и Scala .

    Потоково-ориентированные средства требуют меньше памяти и для некоторых задач, основанных на линейном обходе XML-документа, они быстрее и проще, чем другие альтернативы. API-интерфейсы обхода дерева и привязки данных обычно требуют использования гораздо большего объема памяти, но часто оказываются более удобными для использования программистами; некоторые включают декларативное извлечение компонентов документа с использованием выражений XPath.

    XSLT разработан для декларативного описания преобразований XML-документов и широко применяется как в серверных пакетах, так и в веб-браузерах. XQuery перекрывает XSLT по своей функциональности, но больше предназначен для поиска в больших базах данных XML .

    Простой API для XML

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

    Разбор по запросу

    Анализ по запросу обрабатывает документ как серию элементов, считываемых последовательно с использованием шаблона проектирования итератора . Это позволяет писать парсеры с рекурсивным спуском, в которых структура кода, выполняющего синтаксический анализ, отражает структуру анализируемого XML, а промежуточные проанализированные результаты могут использоваться и доступны как локальные переменные в функциях, выполняющих синтаксический анализ, или передаваться вниз ( как параметры функции) в функции более низкого уровня или возвращенные (как значения, возвращаемые функцией) в функции более высокого уровня. Примеры синтаксических анализаторов включают Data :: Edit :: Xml в Perl , StAX на языке программирования Java , XMLPullParser в Smalltalk , XMLReader в PHP , ElementTree.iterparse в Python , System.Xml.XmlReader в .NET Framework и DOM. API обхода (NodeIterator и TreeWalker).

    Анализатор извлечения создает итератор, который последовательно обращается к различным элементам, атрибутам и данным в XML-документе. Код, использующий этот итератор, может тестировать текущий элемент (например, чтобы определить, является ли он начальным тегом, конечным тегом или текстом) и проверять его атрибуты (локальное имя, пространство имен , значения атрибутов XML, значение текст и т. д.), а также может переместить итератор к следующему элементу. Таким образом, код может извлекать информацию из документа по мере его прохождения. Подход с рекурсивным спуском имеет тенденцию сохранять данные в виде типизированных локальных переменных в коде, выполняющем синтаксический анализ, в то время как SAX, например, обычно требует, чтобы синтаксический анализатор вручную поддерживал промежуточные данные в стеке элементов, которые являются родительскими элементами элемента. разбирается. Код анализа методом извлечения может быть более простым для понимания и обслуживания, чем код синтаксического анализа SAX.

    Объектная модель документа

    Объектная модель документа (DOM) — это API, который позволяет перемещаться по всему документу, как если бы это было дерево узловых объектов, представляющих содержимое документа. Документ DOM может быть создан парсером или может быть создан вручную пользователями (с ограничениями). Типы данных в узлах DOM абстрактны; реализации предоставляют свои собственные привязки для конкретных языков программирования . Реализации DOM, как правило, интенсивно используют память , поскольку обычно требуют, чтобы весь документ был загружен в память и построен как дерево объектов, прежде чем будет разрешен доступ.

    Связывание данных

    Привязка данных XML — это привязка документов XML к иерархии настраиваемых и строго типизированных объектов, в отличие от общих объектов, созданных анализатором DOM. Такой подход упрощает разработку кода и во многих случаях позволяет выявлять проблемы во время компиляции, а не во время выполнения. Он подходит для приложений, в которых структура документа известна и зафиксирована на момент написания приложения. Примеры систем связывания данных включают архитектуру Java для связывания XML (JAXB), сериализацию XML в .NET Framework . и сериализация XML в gSOAP .

    XML как тип данных

    XML появился как первоклассный тип данных в других языках. Расширение ECMAScript для XML (E4X) для языка ECMAScript / JavaScript явно определяет два конкретных объекта (XML и XMLList) для JavaScript, которые поддерживают узлы документов XML и списки узлов XML как отдельные объекты и используют точечную нотацию, определяющую отношения родитель-потомок. . E4X поддерживается браузерами Mozilla 2.5+ (хотя сейчас не рекомендуется) и Adobe Actionscript , но не получил более широкого распространения. Подобные обозначения используются в реализации Microsoft LINQ для Microsoft .NET 3.5 и выше, а также в Scala (который использует виртуальную машину Java). Приложение xmlsh с открытым исходным кодом, которое предоставляет Linux-подобную оболочку со специальными функциями для работы с XML, аналогичным образом обрабатывает XML как тип данных, используя нотацию <[]>. Платформа описания ресурсов определяет тип данных rdf:XMLLiteralдля хранения канонического XML в оболочке . Facebook разработал расширения для языков PHP и JavaScript, которые добавляют XML к основному синтаксису аналогично E4X, а именно XHP и JSX соответственно.

    История

    XML — это профиль приложения SGML (ISO 8879).

    Универсальность SGML для динамического отображения информации была понята первыми издателями цифровых медиа в конце 1980-х, до появления Интернета. К середине 1990-х некоторые практикующие SGML приобрели опыт работы с тогда еще новой всемирной паутиной и считали, что SGML предлагает решения некоторых проблем, с которыми, вероятно, столкнется Интернет по мере своего роста. Дэн Коннолли добавил SGML в список деятельности W3C, когда присоединился к команде в 1995 году; Работа началась в середине 1996 года, когда инженер Sun Microsystems Джон Босак разработал устав и нанял сотрудников. Босак имел хорошие связи в небольшом сообществе людей, имевших опыт работы как в SGML, так и в Интернете.

    XML был составлен рабочей группой из одиннадцати членов при поддержке группы интересов, состоящей примерно из 150 человек. Технические дебаты проходили в списке рассылки Группы интересов, и вопросы решались консенсусом или, если это не удалось, большинством голосов Рабочей группы. Отчет о проектных решениях и их обоснованиях был составлен Майклом Сперберг-Маккуином 4 декабря 1997 года. Джеймс Кларк служил техническим руководителем рабочей группы, в частности, внося свой вклад в <empty />синтаксис пустых элементов и название «XML». Другие названия, которые были предложены на рассмотрение, включали «MAGMA» (минимальная архитектура для приложений обобщенной разметки), «SLIM» (структурированный язык для разметки в Интернете) и «MGML» (минимальный обобщенный язык разметки). Соредакторами спецификации изначально были Тим Брей и Майкл Сперберг-Маккуин . В середине проекта Брей согласился на консультацию с Netscape , что вызвало бурные протесты со стороны Microsoft. Брея временно попросили уйти с должности редактора. Это привело к острым спорам в Рабочей группе, которые в конечном итоге разрешились назначением Жана Паоли из Microsoft третьим соредактором.

    Рабочая группа XML никогда не встречалась лицом к лицу; Дизайн был выполнен с использованием комбинации электронной почты и еженедельных телеконференций. Основные проектные решения были приняты за короткий период интенсивной работы в период с августа по ноябрь 1996 г., когда был опубликован первый рабочий проект спецификации XML. Дальнейшая разработка продолжалась до 1997 года, и 10 февраля 1998 года XML 1.0 стал Рекомендацией W3C .

    Источники

    XML — это профиль SGML стандарта ISO, и большая часть XML исходит из SGML без изменений. Из SGML приходит разделение логических и физических структур (элементов и сущностей), доступность проверки на основе грамматики (DTD), разделение данных и метаданных (элементы и атрибуты), смешанный контент, разделение обработки и представления ( обработка инструкции ) и синтаксис угловых скобок по умолчанию. Объявление SGML было удалено; таким образом, XML имеет фиксированный набор разделителей и принимает Unicode в качестве набора символов документа .

    Другими источниками технологии для XML были TEI (Text Encoding Initiative), который определил профиль SGML для использования в качестве «синтаксиса передачи»; и HTML , в котором элементы были синхронизированы со своими ресурсами, наборы символов документа были отделены от кодировки ресурсов, xml:langатрибут был изобретен, и (как и HTTP ) метаданные сопровождали ресурс, а не требовались при объявлении ссылки. Основой правил именования XML 1.0 стал проект ERCS (Extended Reference Concrete Syntax) проекта SPREAD (Проект стандартизации в отношении документов Восточной Азии) связанной с ISO группой экспертов по обработке документов Китая / Японии / Кореи; SPREAD также представил ссылки на шестнадцатеричные числовые символы и концепцию ссылок, чтобы сделать доступными все символы Unicode. Для лучшей поддержки ERCS, XML и HTML стандарт SGML IS 8879 был пересмотрен в 1996 и 1998 годах с помощью WebSGML Adaptations. Заголовок XML последовал за заголовком ISO HyTime .

    Новые идеи для XML, разработанные в ходе обсуждения, включали алгоритм обнаружения кодирования и заголовок кодирования, цель инструкции обработки, атрибут xml: space и новый закрывающий разделитель для тегов пустых элементов. Понятие корректности в противоположность действительности (что позволяет выполнять синтаксический анализ без схемы) было сначала формализовано в XML, хотя оно было успешно реализовано в программном обеспечении Dynatext для технологии электронных книг; программное обеспечение проекта New Oxford English Dictionary при Университете Ватерлоо; текстовый процессор RISP LISP SGML в Uniscope, Токио; гипертекстовая система IADS армии США; Наставник Графический контекст; Издательская система Interleaf и Xerox.

    Версии

    Есть две текущие версии XML:

    XML 1.0

    Первый ( XML 1.0 ) был первоначально определен в 1998 году. С тех пор он претерпел незначительные изменения, без присвоения нового номера версии, и в настоящее время находится в пятом издании, опубликованном 26 ноября 2008 года. Он широко внедрен и все еще рекомендуется для общего пользования.

    XML 1.1

    Второй ( XML 1.1 ) был первоначально опубликован 4 февраля 2004 г., в тот же день, что и Третье издание XML 1.0, и в настоящее время находится во втором издании, опубликованном 16 августа 2006 г. Он содержит функции (некоторые спорные), которые предназначены для чтобы упростить использование XML в определенных случаях. Основные изменения состоят в том, чтобы разрешить использование символов конца строки, используемых на платформах EBCDIC , а также использование скриптов и символов, отсутствующих в Unicode 3.2. XML 1.1 не очень широко внедрен и рекомендуется для использования только теми, кому нужны его конкретные функции.

    Допустимые символы Unicode в XML 1.0 и XML 1.1

    Перед выпуском пятой редакции XML 1.0 отличался от XML 1.1 более строгими требованиями к символам, доступным для использования в именах элементов и атрибутов, а также в уникальных идентификаторах: в первых четырех редакциях XML 1.0 символы перечислялись исключительно с использованием определенной версии Стандарт Unicode (от Unicode 2.0 до Unicode 3.2.) Пятое издание заменяет механизм XML 1.1, который более ориентирован на будущее, но снижает избыточность . Подход, принятый в пятом издании XML 1.0 и во всех редакциях XML 1.1, заключается в том, что в именах запрещены только определенные символы, а все остальное разрешено для размещения подходящих символов имени в будущих версиях Unicode. В пятом издании имена XML могут содержать символы балийского , чамского или финикийского сценариев среди многих других, добавленных в Unicode, начиная с Unicode 3.2.

    Практически любая кодовая точка Unicode может использоваться в символьных данных и значениях атрибутов документа XML 1.0 или 1.1, даже если символ, соответствующий кодовой точке, не определен в текущей версии Unicode. В символьных данных и значениях атрибутов XML 1.1 позволяет использовать больше управляющих символов, чем XML 1.0, но для «надежности» большинство управляющих символов, представленных в XML 1.1, должны быть выражены как числовые ссылки на символы (и от # x7F до # x9F , которые были разрешены в XML 1.0, в XML 1.1 даже требуется, чтобы они выражались в виде ссылок на числовые символы). Среди поддерживаемых управляющих символов в XML 1.1 есть два кода разрыва строки, которые следует рассматривать как пробелы. Пробельные символы — это единственные управляющие коды, которые можно писать напрямую.

    XML 2.0

    Обсуждался XML 2.0, хотя ни одна организация не объявила о планах работы над таким проектом. XML-SW (SW для skunkworks ), написанный одним из первых разработчиков XML, содержит некоторые предложения о том, как может выглядеть XML 2.0: исключение DTD из синтаксиса, интеграция пространств имен , XML Base и XML Information Set в базу. стандарт.

    Двоичный XML

    Консорциум World Wide Web также имеет рабочую группу по двоичной характеристике XML, которая занимается предварительным исследованием вариантов использования и свойств двоичного кодирования информационного набора XML. Рабочая группа не уполномочена производить какие-либо официальные стандарты. Поскольку XML по определению основан на тексте, ITU-T и ISO используют название Fast Infoset для своего собственного двоичного информационного набора, чтобы избежать путаницы (см. Рек. ITU-T X.891 и ISO / IEC 24824-1).

    Критика

    XML и его расширения регулярно подвергались критике за многословие, сложность и избыточность.

    Сопоставление базовой древовидной модели XML с системами типов языков программирования или баз данных может быть трудным, особенно когда XML используется для обмена высокоструктурированными данными между приложениями, что не было его основной целью разработки. Однако системы привязки данных XML позволяют приложениям получать доступ к данным XML непосредственно из объектов, представляющих структуру данных данных на используемом языке программирования, что обеспечивает безопасность типов , вместо использования DOM или SAX для извлечения данных из прямого представления XML. сам. Это достигается путем автоматического создания сопоставления между элементами XSD схемы XML документа и членами класса, которые должны быть представлены в памяти.

    Другие критические замечания пытаются опровергнуть утверждение, что XML является языком с самоописанием (хотя сама спецификация XML не делает такого утверждения).

    JSON , YAML и S-выражения часто предлагаются в качестве более простых альтернатив (см. Сравнение форматов сериализации данных ), которые фокусируются на представлении сильно структурированных данных, а не документов, которые могут содержать как сильно структурированный, так и относительно неструктурированный контент. Однако спецификации стандартизированной схемы XML W3C предлагают более широкий диапазон структурированных типов данных XSD по сравнению с более простыми форматами сериализации и предлагают модульность и повторное использование через пространства имен XML .

    Смотрите также

    • Список языков разметки XML
    • Список схем XML
    • Расширяемое программирование
    • Сравнение механизмов верстки (XML)
    • Сравнение форматов сериализации данных
    • Двоичный XML
    • EBML
    • WBXML
    • XML протокол

    Примечания

    использованная литература

    дальнейшее чтение

    • Приложение A к ISO 8879: 1986 (SGML)
    • Лоуренс А. Каннингем (2005). «Язык, сделки и стандарты: будущее XML-контрактов». Обзор права Вашингтонского университета . SSRN  900616 .
    • Босак, Джон; Брей, Тим (май 1999). «XML и Интернет второго поколения» . Scientific American . 280 (5): 89. Bibcode : 1999SciAm.280e..89B . DOI : 10.1038 / Scientificamerican0599-89 . Архивировано из оригинала на 1 октября 2009 года.
    • Келли, Шон (6 февраля 2006 г.). «Ошибки с XML» . Developer.com . Проверено 26 октября 2010 года .
    • Сен-Лоран, Саймон (12 февраля 2003 г.). «Пять лет спустя, XML». Блог O’Reilly XML . O’Reilly Media . Проверено 26 октября 2010 года .
    • «W3C XML — десять!» . Консорциум World Wide Web . 12 февраля 2008 . Проверено 26 октября 2010 года .
    • «Введение в XML» (PDF) . Слайды курса . Пьер Женев . Октябрь 2012. Архивировано 16 октября 2015 года.CS1 maint: bot: исходный статус URL неизвестен ( ссылка )

    внешние ссылки

    Формат эксемель как пишется Викискладе есть медиафайлы по теме XML .
    • Домашняя страница W3C XML
    • Спецификация XML 1.0
    • Ретроспектива по конкретному синтаксису с расширенными ссылками , Рик Джеллифф
    • XML, Java и будущее Интернета (1997), Джон Босак
    • http://validator.w3.org/ Официальная служба проверки разметки [W3C]
    • XML FAQ изначально для XML SIG W3C, автор Питер Флинн

  • Формула борной кислоты в химии как пишется
  • Формат корал как пишется
  • Формат пдф как пишется
  • Формат эксель как пишется на английском
  • Формат эксель как пишется сокращенно