Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

XML


XML.svg

План:


Введення

XML ( англ. eXtensible Markup Language - Розширюваний мова розмітки, вимовляється [екс-ем-ел]) - рекомендований Консорціумом Всесвітньої павутини мова розмітки, фактично представляє собою звід загальних синтаксичних правил. XML - текстовий формат, призначений для зберігання структурованих даних (замість існуючих файлів баз даних), для обміну інформацією між програмами, а також для створення на його основі більш спеціалізованих мов розмітки (наприклад, XHTML). XML є спрощеною підмножиною мови SGML.


1. Історія

Роком народження XML можна вважати 1996, в кінці якого з'явився чорновий варіант специфікації мови, або 1998, коли ця специфікація була затверджена. А почалося все з появи в 1986 мови SGML.

SGML ( англ. Standard Generalized Markup Language - Стандартний узагальнений мову розмітки) заявив про себе як гнучкий, комплексний і всеосяжний мета-мова для створення мов розмітки. Незважаючи на те, що поняття гіпертексту з'явилося в 1965, SGML не має гіпертекстової моделі. Створення SGML можна з упевненістю назвати спробою осягнути неосяжне, так як він об'єднує в собі такі можливості, які вкрай рідко використовуються всі разом. У цьому й полягає його головний недолік - складність і, як наслідок, дорожнеча цієї мови обмежує його використання тільки великими компаніями, які можуть дозволити собі купити відповідне програмне забезпечення і найняти високооплачуваних фахівців. Крім того, у невеликих компаній рідко виникають настільки складні завдання, щоб залучати до їх вирішення SGML.

Найбільш широко SGML застосовується для створення інших мов розмітки, саме з його допомогою була створена мова розмітки гіпертекстових документів - HTML, специфікація якого була затверджена в 1992. Його поява була пов'язана з необхідністю організації стрімко зростаючого масиву документів в мережі Інтернет. Бурхливе зростання кількості підключень до Інтернету і, відповідно, веб-серверів спричинив таку потребу в кодуванні електронних документів, з якою не міг впоратися SGML внаслідок високої труднощі освоєння. Поява HTML - дуже простої мови розмітки - швидко вирішило цю проблему: легкість у вивченні і багатство засобів оформлення документів зробили його найпопулярнішою мовою для користувачів Інтернет. Але, у міру зростання кількості та зміни якості документів в Мережі, росли і вимоги до них, і простота HTML перетворилася в його головний недолік. Обмеженість кількості тегів і повну байдужість до структури документа спонукали розробників в особі консорціуму W3C до створення такої мови розмітки, який був би не такий складний, як SGML, і не настільки примітивний, як HTML. В результаті на світ з'явилася мова XML, що поєднує в собі простоту HTML, логіку розмітки SGML і задовольняє вимогам Інтернету.


2. Правильно побудовані і дійсні документи XML

Стандартом визначено два рівні правильності документа XML:

  • Правильно побудований ( англ. well-formed ). Правильно побудований документ відповідає всім загальним правилам синтаксису XML, застосовним до будь-якого XML-документу. І якщо, наприклад, початковий тег не має відповідного йому кінцевого тега, то це неправильно побудований документ XML. Документ, який неправильно побудований, не може вважатися документом XML; XML-процесор ( парсер) не повинен обробляти його звичайним чином і зобов'язаний класифікувати ситуацію як фатальна помилка.
  • Дійсний ( англ. valid ). Дійсний документ додатково відповідає деяким семантичним правилам. Це більш сувора додаткова перевірка коректності документа на відповідність заздалегідь визначеним, але вже зовнішнім правилам, з метою мінімізації кількості помилок, наприклад, структури та складу даного, конкретного документа або родини документів. Ці правила можуть бути розроблені як самим користувачем, так і сторонніми розробниками, наприклад, розробниками словників або стандартів обміну даними. Зазвичай такі правила зберігаються в спеціальних файлах - схемах, де найдетальнішим чином описана структура документа, всі допустимі назви елементів, атрибутів та багато іншого. І якщо документ, наприклад, містить не визначене заздалегідь у схемах назва елемента, то XML-документ вважається недійсним; перевіряючий XML-процесор ( валідатор) при перевірці на відповідність правилам і схемам зобов'язаний (за вибором користувача) повідомити про помилку.

Дані два поняття не мають достатньо усталеного стандартизованого перекладу на російську мову, особливо поняття valid, яке можна також перевести, як має силу, правомірний, надійний, придатний, або навіть перевірений на відповідність правилам, стандартам, законам. Деякі програмісти застосовують в побуті усталену кальку "Дійсний".


3. Синтаксис XML

У цьому розділі розглядається лише правильна побудова документів XML, тобто їх синтаксис.

XML - це описана в текстовому форматі ієрархічна структура, призначена для зберігання будь-яких даних. Візуально структура може бути представлена ​​як дерево елементів. Елементи XML описуються тегами.

Розглянемо приклад простого кулінарного рецепта, розміченого за допомогою XML:

  version  =  "1.0"  encoding  =  "UTF-8"  ?>   name  =  "Хліб"  preptime  =  "5"  cooktime  =  "180"  >   > </span></span></span> Простий хліб <span><span> </ Title <span> > </span></span></span><span><span> <Ingredient </span><span> amount </span> = <span> "3" </span><span> unit </span> = <span> "Стакан" </span><span> > </span></span> Борошно <span><span> </ Ingredient <span> > </span></span></span><span><span> <Ingredient </span><span> amount </span> = <span> "0.25" </span><span> unit </span> = <span> "Грам" </span><span> > </span></span> Дріжджі <span><span> </ Ingredient <span> > </span></span></span><span><span> <Ingredient </span><span> amount </span> = <span> "1.5" </span><span> unit </span> = <span> "Стакан" </span><span> > </span></span> Тепла вода <span><span> </ Ingredient <span> > </span></span></span><span><span> <Ingredient </span><span> amount </span> = <span> "1" </span><span> unit </span> = <span> "Чайна ложка" </span><span> > </span></span> Сіль <span><span> </ Ingredient <span> > </span></span></span><span><span> <Instructions <span> > </span></span></span><span><span> <Step <span> > </span></span></span> Змішати всі інгредієнти і ретельно замісити. <span><span> </ Step <span> > </span></span></span><span><span> <Step <span> > </span></span></span> Закрити тканиною і залишити на одну годину в теплому приміщенні. <span><span> </ Step <span> > </span></span></span><span> <! - <step> Почитати вчорашню газету. </ Step> - це сумнівний крок ... -> </span><span><span> <Step <span> > </span></span></span> Замісити ще раз, покласти на деко і поставити в духовку. <span><span> </ Step <span> > </span></span></span><span><span> </ Instructions <span> > </span></span></span><span><span> </ Recipe <span> > </span></span></span></pre></div></div><p><br /></p><br clear=all style=page-break-before:always /><h3><span id=link7> 3.1. Оголошення XML </span></h3><p> Перший рядок XML-документа називається <i>оголошення XML</i> ( <a href="/Англійська_мова" title="Англійська мова">англ.</a> <span lang=en xml:lang=en> <i>XML declaration</i> </span> ) - Це рядок, що вказує версію XML. У версії 1.0 <i>оголошення XML</i> може бути опущено, у версії 1.1 воно обов'язково. Також тут може бути вказана <a href="/Кодування_символів" title="Кодування символів">кодування символів</a> та наявність зовнішніх залежностей. </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <? Xml </span><span> version </span> = <span> "1.0" </span><span> encoding </span> = <span> "UTF-8" </span><span> ?> </span></span></pre></div></div><p> Специфікація вимагає, щоб процесори XML обов'язково підтримували <a href="/Юнікод" title="Юнікод">Юнікод</a> -кодування <a href="/UTF-8" title="UTF-8">UTF-8</a> і <a href="/UTF-16" title="UTF-16">UTF-16</a> ( <a href="/UTF-32" title="UTF-32">UTF-32</a> не обов'язковий). Визнаються допустимими, підтримуються і широко використовуються (але не обов'язкові) інші кодування, засновані на стандарті <a href="/ISO-8859" title="ISO-8859">ISO / IEC 8859</a>, також допустимі інші кодування, наприклад, росіяни <a href="/Windows-1251" title="Windows-1251">Windows-1251</a>, <a href="/KOI-8" title="KOI-8">KOI-8</a>. Часто в тегах принципово не використовують не-латинські літери, в цьому випадку UTF-8 є дуже зручною кодуванням - обсяг, як правило, менше, ніж при UTF-16; декодування може бути виконано як для всього документа, так і для конкретних атрибутів і текстів; весь документ не містить заборонених символів при спробі розбору з неправильною кодуванням. </p><br clear=all style=page-break-before:always /><h3><span id=link8> 3.2. Кореневий елемент </span></h3><p> Найважливіше обов'язкове синтаксичне вимога полягає в тому, що документ має тільки один <i>кореневий елемент</i> ( <a href="/Англійська_мова" title="Англійська мова">англ.</a> <span lang=en xml:lang=en> <i>root element</i> </span> ) (Також іноді званий <i>елемент документа</i> ( <a href="/Англійська_мова" title="Англійська мова">англ.</a> <span lang=en xml:lang=en> <i>document element</i> </span> )). Це означає, що текст чи інші дані всього документа повинні бути розташовані між єдиним початковим кореневим тегом і відповідним йому кінцевим тегом. </p><p> Наступний найпростіший приклад - правильно побудований документ XML: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <Book <span> > </span></span></span> Це книга: "Книжечка" <span><span> </ Book <span> > </span></span></span></pre></div></div><p> Наступний приклад не є коректним XML-документом, бо має два <i>кореневих елементи:</i> </p><div dir=ltr style="text-align: left;"><div><pre><span> <! - УВАГА! Некоректний XML! -> </span><span><span> <Thing <span> > </span></span></span> Сутність № 1 <span><span> </ Thing <span> > </span></span></span><span><span> <Thing <span> > </span></span></span> Сутність № 2 <span><span> </ Thing <span> > </span></span></span></pre></div></div><br clear=all style=page-break-before:always /><h3><span id=link9> 3.3. Коментар </span></h3><p> У будь-якому місці дерева може бути розміщений <i>елемент-коментар.</i> XML-коментарі розміщуються всередині спеціального тега, що починається з символів <code><!--</code> і завершується символами <code>--></code>. Два знака дефіс ( <code>--</code>) всередині коментаря присутнім не можуть. </p><div dir=ltr style="text-align: left;"><div><pre><span> <! - Це коментар. -> </span></pre></div></div><p> Теги всередині коментаря оброблятися не повинні. </p><h3><span id=link10> 3.4. Теги </span></h3><p> Інша частина цього XML-документа складається з вкладених <i>елементів,</i> деякі з яких мають <i>атрибути</i> і <i>вміст. Елемент</i> зазвичай складається з відкриваючого і закриває тегів, що обрамляють текст та інші елементи. <i>Відкриває тег</i> складається з <i>імені елемента</i> в кутових дужках, наприклад, <code><step></code>, а <i>закриває тег</i> складається з того ж імені в кутових дужках, але перед ім'ям ще додається коса риска, наприклад, <code></step></code>. Імена елементів, як і імена атрибутів, не можуть містити <i>пробіли,</i> але можуть бути будь-якою мовою, що підтримується кодуванням XML-документа. Ім'я може починатися з літери, підкреслення, двокрапки. Рештою символами імені можуть бути ті ж символи, а також цифри, дефіс, крапка. </p><p> <i>Вмістом елементу</i> ( <a href="/Англійська_мова" title="Англійська мова">англ.</a> <span lang=en xml:lang=en> <i>content</i> </span> ) Називається все, що розташоване між відкриває і закриває тегами, включаючи текст та інші (вкладені) елементи. Нижче наведено приклад XML-елементу, який містить відкриває тег, що закриває тег і вміст елемента: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <Step <span> > </span></span></span> Замісити ще раз, покласти на деко і поставити в духовку. <span><span> </ Step <span> > </span></span></span></pre></div></div><p> Окрім змісту у елемента можуть бути <i>атрибути</i> - пари ім'я-значення, що додаються в відкриває тег після назви елемента. Значення атрибутів завжди полягають в лапки (одинарні або подвійні), одне і те ж ім'я атрибута не може зустрічатися двічі на одному елементі. Не рекомендується використовувати різні типи лапок для значень атрибутів одного тега. </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <Ingredient </span><span> amount </span> = <span> "3" </span><span> unit </span> = <span> "Стакан" </span><span> > </span></span> Борошно <span><span> </ Ingredient <span> > </span></span></span></pre></div></div><p> У наведеному прикладі у елемента " <code>ingredient</code> "є два атрибути:" <code>amount</code> ", що має значення" 3 ", і" <code>unit</code> ", що має значення" стакан ". З точки зору XML-розмітки, наведені атрибути не несуть ніякого сенсу, а є просто набором символів. </p><p> Крім тексту, елемент може містити інші елементи: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <Instructions <span> > </span></span></span><span><span> <Step <span> > </span></span></span> Змішати всі інгредієнти і ретельно замісити. <span><span> </ Step <span> > </span></span></span><span><span> <Step <span> > </span></span></span> Закрити тканиною і залишити на одну годину в теплому приміщенні. <span><span> </ Step <span> > </span></span></span><span><span> <Step <span> > </span></span></span> Замісити ще раз, покласти на деко і поставити в духовку. <span><span> </ Step <span> > </span></span></span><span><span> </ Instructions <span> > </span></span></span></pre></div></div><p> В даному випадку елемент " <code>instructions</code> "містить три елементи" <code>step</code> ". </p><p> XML не допускає, що перекриваються. Наприклад, наведений нижче фрагмент некоректний, оскільки елементи " <code>em</code> "і" <code>strong</code> "перекриваються. </p><div dir=ltr style="text-align: left;"><div><pre><span> <! - УВАГА! Некоректний XML! -> </span><span><span> <P <span> > </span></span></span> Звичайний <span><span> <Em <span> > </span></span></span> акцентований <span><span> <Strong <span> > </span></span></span> виділений і акцентований <span><span> </ Em <span> > </span></span></span> виділений <span><span> </ Strong <span> > </span></span><span> </ P <span> > </span></span></span></pre></div></div><p> Для позначення елемента без змісту, званого <i>порожнім елементом,</i> необхідно застосовувати особливу форму запису, що складається з одного тега, в якому після імені елемента ставиться коса риса. Якщо в <a href="/DTD" title="DTD">DTD</a> елемент не оголошено порожнім, але в документі він не має змісту, для нього допускається застосовувати наступні (три) форми запису. Наприклад: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <Foo <span> > </span></span><span> </ Foo <span> > </span></span></span><span><span> <Foo </span><span> /> </span></span><span><span> <Foo </span><span> /> </span></span></pre></div></div><br clear=all style=page-break-before:always /><h3><span id=link11> 3.5. Спецсимволи </span></h3><p> У XML визначені два методи запису спеціальних символів: посилання на сутність і посилання на номер символу. </p><p> <i>Сутністю</i> ( <a href="/Англійська_мова" title="Англійська мова">англ.</a> <span lang=en xml:lang=en> <i>entity</i> </span> ) В XML називаються іменовані дані, які зазвичай текстові, зокрема, спецсимволи. <i>Посилання на сутність</i> ( <a href="/Англійська_мова" title="Англійська мова">англ.</a> <span lang=en xml:lang=en> <i>entity references</i> </span> ) Вказується в тому місці, де повинна бути сутність і складається з <a href="/Амперсанд" title="Амперсанд">амперсанда</a> ( <code>&</code>), імені сутності та <a href="/Крапка_з_комою" title="Крапка з комою">крапки з комою</a> ( <code>;</code>). </p><p> У XML є кілька визначених сутностей, таких як <code>lt</code> (посилатися на неї можна написавши <code><</code>) для лівої кутової дужки і <code>amp</code> (посилання - <code>&</code>) для амперсанда. Можливо також визначати власні сутності. Крім запису за допомогою сутностей окремих символів, їх можна використовувати для запису часто зустрічаються текстових блоків. </p><p> Нижче наведено приклад використання зумовленої суті для уникнення використання знака амперсанда у назві: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <Company-name <span> > </span></span></span> AT <span> & </span> T <span><span> </ Company-name <span> > </span></span></span></pre></div></div><p> Повний список зумовлених сутностей складається з <code>&</code> ( <code>&</code> <code><</code> ( <code><</code> <code>></code> ( <code>></code> <code>'</code> ( <code>'</code>) і <code>"</code> ( <code>"</code>) - останні дві корисні для запису роздільників всередині значень атрибутів. Визначити свої суті можна в DTD-документі. </p><p> Іноді буває необхідно визначити нерозривний пропуск, який дуже часто використовується в HTML і позначається як <code> </code> У XML такий зумовленої суті немає, його записують <code> </code> а використання <code> </code> помилку. Відсутність цієї вельми поширеною сутності у безлічі програмістів найчастіше викликає подив і це створює деякі труднощі при міграції своїх HTML-розробок в XML. </p><p> <i>Посилання за номером символу</i> ( <a href="/Англійська_мова" title="Англійська мова">англ.</a> <span lang=en xml:lang=en> <i>numeric character reference</i> </span> ) Виглядає як посилання на сутність, але замість імені суті вказується <a href="/Октоторп" title="Октоторп">символ <code>#</code></a> і число (в десятковій або <a href="/Шістнадцяткова_система_числення" title="Шістнадцяткова система числення">шістнадцятковій</a> запису), що є номером символу в кодової таблиці <a href="/Юнікод" title="Юнікод">Юнікод</a>. Це звичайно символи, які неможливо закодувати безпосередньо, наприклад, буква <a href="/Арабський_алфавіт" title="Арабський алфавіт">арабського алфавіту</a> в <a href="/ASCII" title="ASCII">ASCII</a> -кодованому документі. <a href="/Амперсанд" title="Амперсанд">Амперсанд</a> може бути представлений таким чином: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <Company-name <span> > </span></span></span> AT <span> & </span> T <span><span> </ Company-name <span> > </span></span></span></pre></div></div><p> Існують і інші правила, що стосуються складання коректного XML-документа. </p><br clear=all style=page-break-before:always /><h2><span id=link12> 4. Сильні і слабкі сторони </span></h2><h3><span id=link13> 4.1. Переваги </span></h3><ul><li> XML - <a href="/Мова_розмітки" title="Мова розмітки">мова розмітки</a>, що дозволяє стандартизувати вид файлів-даних, що використовуються комп'ютерними програмами, у вигляді тексту, зрозумілого людині; </li><li> XML підтримує <a href="/Юнікод" title="Юнікод">Юнікод</a>; </li><li> у форматі XML можуть бути описані такі структури даних, як <a href="/Структура_(програмування)" title="Структура (програмування)">записи</a>, <a href="/Список_(інформатика)" title="Список (інформатика)">списки</a> і <a href="/Дерево_(структура_даних)" title="Дерево (структура даних)">дерева</a>; </li><li> XML - це самодокументіруемий формат, який описує структуру і імена полів так само як і значення полів; </li><li> XML має строго певний синтаксис і вимоги до аналізу, що дозволяє йому залишатися простим, ефективним і несуперечливим. Одночасно з цим, різні розробники не обмежені у виборі експресивних методів (наприклад, можна моделювати дані, поміщаючи значення в параметри тегів в тіло тегів, можна використовувати різні мови і нотації для іменування тегів і т. д.); </li><li> XML - формат, заснований на міжнародних стандартах; </li><li> Ієрархічна структура XML підходить для опису практично будь-яких типів документів, крім аудіо і відео мультимедійних потоків, растрових зображень, мережевих структур даних і двійкових даних; </li><li> XML це простий текст, вільний від ліцензування і яких-небудь обмежень; </li><li> XML не залежить від платформи; </li><li> XML є підмножиною SGML (який використовується з <a href="/1986" title="1986">1986</a>). Уже накопичено великий досвід роботи з мовою і створені спеціалізовані додатки; </li><li> XML не накладає вимог на порядок розташування атрибутів в елементі і вкладених елементів різних типів <a href=#link24><sup id=link39>[4]</sup></a>, що істотно полегшує виконання вимог <a href="/Зворотна_сумісність" title="Зворотна сумісність">зворотної сумісності</a>; </li><li> На відміну від бінарних форматів, XML містить метадані про імена, типах і класах описуваних об'єктів, по яких програма може обробити документ невідомої структури (наприклад, для динамічної побудови інтерфейсів <a href=#link25><sup id=link41>[5]</sup></a>); </li><li> XML має реалізації <a href="/Парсер" title="Парсер">парсеров</a> для всіх сучасних мов програмування; <a href=#link26><sup id=link42>[6]</sup></a> </li><li> Існує стандартний механізм перетворення <a href="/XSLT" title="XSLT">XSLT</a>, реалізації якого вбудовані в <a href="/Браузер" title="Браузер">браузери</a>, операційні системи, <a href="/Веб-сервер" title="Веб-сервер">веб-сервери</a>. </li><li> XML підтримується на низькому апаратному, мікропрограмному та програмному рівнях у сучасних апаратних рішеннях. <a href=#link27><sup id=link43>[7]</sup></a> </li></ul><br clear=all style=page-break-before:always /><h3><span id=link14> 4.2. Недоліки </span></h3><ul><li> Синтаксис XML надмірний. <a href=#link28><sup id=link44>[8]</sup></a> </li></ul><dl><dd><ul><li> Розмір XML-документа істотно більше бінарного представлення тих же даних. У грубих оцінках величину цього чинника приймають за 1 порядок (у 10 разів). </li><li> Розмір XML-документа істотно більше, ніж документа в альтернативних форматах текстових передачі даних (наприклад <a href="/JSON" title="JSON">JSON</a> <sup id=link40><a href=#link24>[4]</a></sup>, <a href="/YAML" title="YAML">YAML</a>, <a href="/Protocol_Buffers" title="Protocol Buffers">Protocol Buffers</a>) і особливо в форматах даних, оптимізованих для конкретного випадку використання. </li><li> Надмірність XML може вплинути на ефективність програми. Зростає вартість зберігання, обробки і передачі даних. </li><li> XML містить метадані (про імена полів, класів, вкладеності структур), і одночасно XML позиціонується як мову взаємодії відкритих систем. При передачі між системами великої кількості об'єктів одного типу (однієї структури), передавати метадані повторно немає сенсу, хоча вони містяться в кожному примірнику XML опису. </li><li> Для великої кількості завдань не потрібна вся міць синтаксису XML і можна використовувати значно простіші і продуктивні рішення. <a href=#link30><sup id=link45>[9]</sup></a> </li></ul></dd></dl><ul><li> Неоднозначність моделювання. </li></ul><dl><dd><ul><li> Немає загальноприйнятої методології для моделювання даних в XML, у той час як для реляційної моделі і об'єктно-орієнтованої такі засоби розроблені і базуються на <a href="/Реляційна_алгебра" title="Реляційна алгебра">реляційної алгебри</a>, системному підході і системному аналізі. </li><li> У природі є безліч об'єктів і явищ, для опису яких різні структури даних (мережева, реляційна, ієрархічна) є природними, і відображення об'єкта в неприродну для нього модель є болючим для його суті. У випадку з реляційної та ієрархічної моделями визначені процедури <a href="/Декомпозиція" title="Декомпозиція">декомпозиції</a>, що забезпечують відносну однозначність, чого не можна сказати про мережеву моделі. <a href=#link31><sup id=link46>[10]</sup></a> </li><li> В результаті великої гнучкості мови і відсутності суворих обмежень, одна і та ж структура може бути представлена ​​безліччю способів (різними розробниками), наприклад, значення може бути записано як атрибут тега або як тіло тега і т. д. Наприклад: <ul><li> <code><ab="1" c="1"/></code> </li> <li> <code><a><b>1</b><c>1</c></a></code> </li> <li> <code><a><b value="1"/><c value="1"/></a></code> </li> <li> <code><a><fields b="1" c="1"/></a></code> і т. д. <a href=#link32><sup id=link47>[11]</sup></a> </li></ul></li><li> Підтримка багатьох мов в іменуванні тегів дає можливість назвати, наприклад <tt>вага</tt> російським словом, в такому випадку комп'ютер ніяк не зможе встановити відповідності цього поля з полем <tt>weight</tt> в англомовній версії програми і з полями у версіях моделі об'єкта на безлічі інших мов. </li></ul></dd></dl><ul><li> XML не містить вбудованої в мову підтримки <a href="/Тип_даних" title="Тип даних">типів даних</a>. У ньому немає суворої типізації, тобто понять "цілих чисел", "строк", "дат", "булевих значень" і т. д. </li><li><a href="/Ієрархічна_модель_даних" title="Ієрархічна модель даних">Ієрархічна модель даних</a>, пропонована XML, обмежена в порівнянні з <a href="/Реляційна_модель_даних" title="Реляційна модель даних">реляційною моделлю</a> і об'єктно-орієнтованими графами і мережевий моделлю даних. </li></ul><dl><dd><ul><li> Вираз неієрархічні даних (наприклад <a href="/Граф_(математика)" title="Граф (математика)">графів</a>) вимагає додаткових зусиль </li><li><a href="/Дейт_Крістофер" title="Дейт, Крістофер">Крістофер Дейт</a>, фахівець в області <a href="/Реляційні_бази_даних" title="Реляційні бази даних">реляційних баз даних</a>, автор класичного підручника " <a href="/An_Introduction_to_Database_Systems" title="An Introduction to Database Systems">An Introduction to Database Systems</a> ", зазначав, що" ... XML є спробою заново винайти <a href="/Ієрархічні_бази_даних" title="Ієрархічні бази даних">ієрархічні бази даних</a>... " <a href=#link33><sup id=link48>[12]</sup></a> (в 1980-і роки ієрархічні бази даних були витіснені <a href="/Реляційні_бази_даних" title="Реляційні бази даних">реляційними базами даних</a>). </li></ul></dd></dl><ul><li> Простору імен XML складно використовувати і їх складно реалізовувати в XML- <a href="/Синтаксичний_аналізатор" title="Синтаксичний аналізатор">парсера</a>. </li><li> Існують інші, що володіють схожими з XML можливостями, текстові формати даних, які володіють більш високим зручністю читання людиною ( <a href="/YAML" title="YAML">YAML</a>, <a href="/JSON" title="JSON">JSON</a>, SweetXML <a href=#link34><sup id=link49>[13]</sup></a>, XF <a href=#link35><sup id=link50>[14]</sup></a>). </li></ul><br clear=all style=page-break-before:always /><h2><span id=link15> 5. Відображення XML у Всесвітній павутині </span></h2><p> Найбільш поширені три способи перетворення XML-документа у відображуваний користувачеві вигляд: </p><ol><li> Застосування стилів <a href="/CSS" title="CSS">CSS</a>; </li><li> Застосування <a href="/XSL" title="XSL">XSL</a>; </li><li> Написання на якій-небудь мові програмування обробника XML-документа. </li></ol><p> Без використання CSS або <a href="/XSL" title="XSL">XSL</a> XML-документ відображається як простий текст в більшості веб-браузерів. Деякі браузери, такі як <a href="/Internet_Explorer" title="Internet Explorer">Internet Explorer</a> і <a href="/Mozilla_Firefox" title="Mozilla Firefox">Mozilla Firefox</a> відображають структуру документа у вигляді дерева, дозволяючи згортати і розгортати вузли за допомогою натискань клавіші миші. </p><br clear=all style=page-break-before:always /><h3><span id=link16> 5.1. Застосування стилів CSS </span></h3><p> Процес аналогічний застосуванню <a href="/CSS" title="CSS">CSS</a> до <a href="/HTML" title="HTML">HTML</a> -документу для відображення. </p><p> Для застосування CSS при відображенні у браузері, XML-документ повинен містити спеціальне посилання на таблицю стилів. Наприклад: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <? Xml-stylesheet </span><span> type </span> = <span> "Text / css" </span><span> href </span> = <span> "MyStyleSheet.css" </span><span> ?> </span></span></pre></div></div><p> Це відрізняється від підходу HTML, де використовується елемент <link>. </p><h3><span id=link17> 5.2. Застосування XSL </span></h3><p><a href="/XSL" title="XSL">XSL</a> є сімейством рекомендацій, що описують мови перетворення і візуалізації XML-документів. Документ трансформується у формат, який підходить для відображення в браузері. <a href="/Браузер" title="Браузер">Браузер</a> - це найбільш часте використання XSL, але не варто забувати, що за допомогою XSL можна трансформувати XML в будь-який формат, наприклад <a href="/VRML" title="VRML">VRML</a>, <a href="/PDF" title="PDF">PDF</a>, текст. </p><p> Для завдання XSL трансформації ( <a href="/XSLT" title="XSLT">XSLT</a>) на стороні клієнта потрібна наявність в XML інструкції наступного вигляду: </p><div dir=ltr style="text-align: left;"><div><pre><span><span> <? Xml-stylesheet </span><span> type </span> = <span> "Text / xsl" </span><span> href </span> = <span> "Transform.xsl" </span><span> ?> </span></span></pre></div></div><br clear=all style=page-break-before:always /><h2><span id=link18> 6. Словники XML </span></h2><p> Так як XML є досить абстрактним мовою, були розроблені словники XML. </p><p> Словник дозволяє розробникам домовитися про деяке кінцевому наборі імен тегів і атрибутів цих тегів. Одним з перших словників є <a href="/XHTML" title="XHTML">XHTML</a>, який розуміють більшість браузерів. <a href="/XHTML" title="XHTML">XHTML</a> часто використовують для зберігання і редагування контенту в <a href="/Система_керування_вмістом" title="Система керування вмістом">CMS</a>. </p><p> Були створені більш спеціалізовані словники, наприклад протокол передачі даних <a href="/SOAP" title="SOAP">SOAP</a>, який не є людино-орієнтованим і досить важко читаємо. Є комерційні словники, такі як <a href="/CommerceML" title="CommerceML">CommerceML</a>, xCBL і cXML які використовуються для передачі даних, орієнтованих на торговельну діяльність, ці словники включають в себе опис системи замовлень, постачальників, продуктів та інше. </p><p> Зазвичай, описуючи якийсь документ, людина для себе придумує деякий словник, який потім описується за допомогою <a href="/DTD" title="DTD">DTD</a> або просто пояснює "на пальцях" зацікавленим особам. </p><p> Одним із словників, що набули поширення, є <a href="/FB2" title="FB2">FB2</a> - словник, що описує формат книги, зі всілякими виносками, цитатами, навіть картинками. </p><br clear=all style=page-break-before:always /><h2><span id=link19> 7. Версії XML </span></h2><ul><li> XML 1.0 </li><li> XML 1.1 </li></ul><h2><span id=link21> Примітки </span></h2><div style=""><ol><li id=link1><span> <a rel=nofollow href=http://tools.ietf.org/html/rfc3023#section-3.2>XML Media Types, RFC 3023</a> - tools.ietf.org/html/rfc3023 # section-3.2 9-11. IETF (січень 2001). <small><a rel=nofollow href=http://www.webcitation.org/617ELzbTm>Фотогалерея</a> - www.webcitation.org/617ELzbTm з першоджерела 22 серпня 2011.</small> </span></li><li id=link2><span> <a rel=nofollow href=http://tools.ietf.org/html/rfc3023#section-3.1>XML Media Types, RFC 3023</a> - tools.ietf.org/html/rfc3023 # section-3.1 7-9. IETF (січень 2001). </span></li><li id=link3><span> <i>M.</i> <i>Murata, D.</i> <i>Kohn, and C.</i> <i>Lilley</i> <a rel=nofollow href=http://tools.ietf.org/html/draft-murata-kohn-lilley-xml-03>Internet Drafts: XML Media Types</a> - tools.ietf.org/html/draft-murata-kohn-lilley-xml-03. IETF (24 вересня 2009). <small><a rel=nofollow href=http://www.webcitation.org/617EMYg12>Фотогалерея</a> - www.webcitation.org/617EMYg12 з першоджерела 22 серпня 2011.</small> </span></li><li id=link24> ↑ <b><sup><i><a href=#link39>1</a> <a href=#link40>2</a></i></sup></b> <a rel=nofollow href=http://www.json.org/xml.html>JSON: The Fat-Free Alternative to XML</a> - www.json.org / xml.html </li><li id=link25> <a rel=nofollow href=http://www.xml.com/lpt/a/1535>XML.com: Very Dynamic Web Interfaces</a> - www.xml.com/lpt/a/1535 </li><li id=link26> <a rel=nofollow href=http://www.xml.com/pub/rg/XML_Parsers>XML Parsers</a> - www.xml.com / pub / rg / XML_Parsers </li><li id=link27> <a rel=nofollow href=http://cache-www.intel.com/cd/00/00/31/30/313072_313072.pdf>Intel XML Accelerator</a> - cache-www.intel.com/cd/00/00/31/30/313072_313072.pdf </li><li id=link28> David Megginson. <a rel=nofollow href=http://www.informit.com/content/images/0131453491/samplechapter/megginson_ch08.pdf>Imperfect XML: Rants, Raves, Tips, and Tricks ... from an Insider.</a> <a rel=nofollow href=http://www.informit.com/content/images/0131453491/samplechapter/megginson_ch08.pdf>Chapter 8</a> - www.informit.com/content/images/0131453491/samplechapter/megginson_ch08.pdf </li><li id=link30> <a rel=nofollow href=http://www.faqs.org/docs/artu/ch05s02.html#id2907018>Data File Metaformats</a> - www.faqs.org/docs/artu/ch05s02.html # id2907018 </li><li id=link31> Gustavo Alonso. <a rel=nofollow href=http://www.informatik.uni-stuttgart.de/ipvs/as/intern/dbrg/alonso.pdf>Myths around Web Services</a> - www.informatik.uni-stuttgart.de/ipvs/as/intern/dbrg/alonso.pdf Swiss Federal Institute of Technology, page 6 </li><li id=link32> Tim Bray. <a rel=nofollow href=http://www.tbray.org/tmp/IETF70.pdf>Using XML in Internet Protocols</a> - www.tbray.org/tmp/IETF70.pdf Sun Microsystems </li><li id=link33> <a rel=nofollow href=http://www.oreillynet.com/lpt/a/6060>O'Reilly Network: An Interview with Chris Date</a> - www.oreillynet.com/lpt/a/6060 </li><li id=link34> <a rel=nofollow href=http://innig.net/software/sweetxml/index.html>SweetXML</a> - innig.net / software / sweetxml / index.html </li><li id=link35> <a rel=nofollow href=http://xfhome.org>XFHome.org - формат обміну даними XF</a> - xfhome.org </li></ol></div><br clear=all style=page-break-before:always /><h2><span id=link22> Література </span></h2><ul><li><span> <i>Девід Хантер, Джефф рафтер, Джо Фаусетт, Ерік ван дер Вліст, та ін</i> XML. Робота з XML, 4-е видання = Beginning XML, 4th Edition - <span style="border-bottom:1px dotted gray; cursor:default" title="Москва"> М </span> .: "Діалектика", 2009. - 1344 с. - <a rel=nofollow href=http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:BookSources/9785845915337>ISBN 978-5-8459-1533-7</a>. </span></li><li><span> <i>Девід Хантер, Джефф рафтер та ін</i> XML. Базовий курс = Beginning XML - <span style="border-bottom:1px dotted gray; cursor:default" title="Москва"> М </span> .: Вільямс, 2009. - 1344 с. - <a rel=nofollow href=http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:BookSources/9785845915337>ISBN 978-5-8459-1533-7</a>. </span></li><li><span> <i>Роберт Тейбор.</i> Реалізація XML Web-служб на платформі Microsoft. NET = Microsoft. NET XML Web Services - <span style="border-bottom:1px dotted gray; cursor:default" title="Москва"> М </span> .: Вільямс, 2002. - 464 с. - <a rel=nofollow href=http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:BookSources/0672320886>ISBN 0-672-32088-6</a>. </span></li></ul></div></div></body></html></link></fields></c></foo></foo></foo></strong></em></step></step></instructions></ingredient></step></step></thing></thing></book></step></step></step></step></instructions></ingredient></ingredient></ingredient></ingredient>

Цей текст може містити помилки.

Схожі роботи | скачати

Схожі роботи:
XML Encryption
XML Schema
Office Open XML
Office Open XML
XML Paper Specification
ECMAScript для XML
Простір імен (XML)
© Усі права захищені
написати до нас
Рейтинг@Mail.ru