загрузка...
загрузка...
На головну

Опис елементів в DTD. Контейнерні і порожні елементи

В DTD кожен елемент, що входить в мову розмітки, визначається за допомогою інструкції ELEMENT.

Оголошення елемента містить

· Ключове слово ELEMENT,

· ім'я елемента (Тега) і

· опис змісту, Дозволеного для визначених елемент, який називається моделлю змісту.

Зміст елемента (тіло) включає все, що знаходиться між відкриває і закриває тегами елементу.

У XML-документах застосовуються елементи двох типів:

а) контейнерні, Т. Е. Елементи, що містять текст і інші елементи,

б) порожні елементи, які нічого не містять.

змістом контейнерного елемента можуть бути

· Символьні дані,

· Інші елементи, які дозволено поміщати в контейнер даного типу,

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

Для контейнерних елементів моделі змісту можуть бути різноманітні і досить складно влаштовані. Описи складних моделей будуються з базових конструкцій.

Базові типи моделей змісту

1. Елементи з порожнім змістом(Empty content).

Порожній елемент не може містити нічого - ні текст, ні вкладені елементи.

Для опису змісту порожнього елемента використовується ключове слово EMPTY, що означає "порожній": br EMPTY>

Хоча порожні елементи не мають ніякого змісту, вони можуть мати атрибути.

2. Опис елементів контейнерного типу.

для контейнерних елементів існує кілька типів змісту.

а) Елементи з символьним змістом(#PCDATA).

Символьні дані - Це найпростіша модель змісту елемента, між початковим і кінцевим тегами може бути поміщений тільки текст без розмітки, але при цьому в ньому можуть зустрічатися себе посилання на сутності, інструкції обробки і коментарі. Тому при аналізі документа ці дані повинні оброблятися парсером, а оголошуються вони за допомогою ключового слова #PCDATA, яке підкреслює цю особливість - parsed character data (аналізовані символьні дані). Наприклад, html-елемент повинен бути оголошений як:</p> <p><! ELEMENT title (#PCDATA)></p> <p><strong>б) "<strong>елементне" зміст</strong> (Element content).</strong></p> <p>Зміст таких елементів може бути складено тільки з інших елементів, текст заборонений.</p> <!--g00g1e_728x90_середина_zag0t--> <p>У цій моделі має зазначатися, скільки саме елементів може бути задано, і в якому порядку вони повинні бути розміщені в елементі. Наприклад, елемент person, який містить структуровану елементами firstname і lastname інформацію про ім'я та прізвища людини, повинен бути визначений таким образо</p> <p><! ELEMENT person <strong>(Firstname, lastname)</strong>></p> <p><! ELEMENT firstname (#PCDATA)></p> <p><! ELEMENT lastname (#PCDATA)></p> <p>Застосування описаного елемента:</p> <p><Person></p> <p><Firstname> Іван </ first></p> <p><Lastname> Іванов </ lastname></p> <p></ Person></p> <p><strong>в) <strong>Елементи про змішаним вмістом</strong> (Mixed content).</strong></p> <p>Змішане зміст відповідає наявності в складі елемента суміші елементів і аналізованих символьних даних (PCDATA).</p> <p><! ELEMENT element (#PCDATA | element2) *></p> <p><strong>Це оголошення відповідає змішаного типу і зміст (після заміни всіх посилань на сутності відповідним текстом) складається з символьних даних, коментарів, інструкцій обробки і дочірніх елементів, тип яких відповідає перерахованим в моделі змісту.</strong></p> <p><strong>г) <strong>Довільний зміст</strong>.</strong></p> <p>Це випадок, коли потрібно вирішити елементу XML будь-який зміст, який відповідає вимогам правильно оформленого документа, то для опису такого змісту використовується ключове слово ANY:</p> <p><! ELEMENT body ANY></p> <p>Це оголошення відповідає елементу з довільним змістом (після заміни всіх посилань на сутності відповідним текстом), який складається з символьних даних і дочірніх елементів, типи яких вже були оголошені.</p> <p>д) <strong>порожній елемент</strong>(Empty content).</p> <p>Порожній елемент не може містити текст або породжені елементи. Але він може мати атрибути. Для опису елемента використовується ключове слово EMPTY.</p> <p><! ELEMENT BODYTEXT EMPTY></p> <p>Це оголошення елемента з порожнім змістом, який не може мати змісту (навіть пробільні символи).</p> <p><strong>Більш складні моделі змісту</strong></p> <p>Базові типи змісту елементів, можна використовувати для опису більш складних моделей змісту.</p> <p>Для елементів з елементним и змішаним вмістом в дужках перераховуються елементи, які можуть вкладені в визначається. Інтерпретація залежить від службових символів, включених в опис моделі.</p> <p>Наприклад, можна визначити, де і скільки разів може з'явитися той чи інший елемент. Для цього використовується спеціальна система позначень.</p> <p><! ELEMENT chapter (title, summary?, Paragraphs +)></p> <table border=1> <tr> <td> символ</td> <td> ім'я символу</td> <td> опис</td> </tr> <tr> <td> Оператори порядку</td> </tr> <tr> <td> | </td> <td> вертикальна риса</td> <td> відіграє роль зв'язки "або"</td> </tr> <tr> <td> , </td> <td> кома</td> <td> вказує, що елемент, розташований перед коми, повинен з'являтися першим, а за ним слідувати елемент, записаний після коми (визначає обов'язковий порядок елементів)</td> </tr> <tr> <td> ()</td> <td> круглі дужки</td> <td> служать для угруповання елементів із зазначенням порядку їх появи; всі елементи, розташовані в дужках, повинні бути попередньо визначені</td> </tr> <tr> <td> Оператори множинності (кардинальності)</td> </tr> <tr> <td> ? </td> <td> знак питання</td> <td> вказує, що перераховані елементи є необов'язковими, але якщо елемент вказано, то він може використовуватися тільки один раз (0 - 1)</td> </tr> <tr> <td> * </td> <td> зірочка</td> <td> вказує, що елемент може перераховуватися будь-яку кількість разів або жодного разу (нуль або більше, 0 - ?)</td> </tr> <tr> <td> + </td> <td> плюс</td> <td> по крайней мере, повинен бути присутнім один елемент, і цей елемент може використовуватися більш ніж один раз (один або більше, (1 - ?)</td> </tr> <tr> <td>   </td> <td> відсутність символів</td> <td> вказує на те, що може використовуватися один і тільки один з елементів (1)</td> </tr> </table> <!--zagrUzka--> <p>(cardinal number перекладається як "кількісне іменник").</p> <p>Спільно з угрупованням моделей елементів або змісту множники дозволяють формувати дуже складні структури. наприклад,</p> <p><! ELEMENT FromBasket (Cherry +, (Apple | Orange) *)></p> <center> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- Lib_728x90_2 --> <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-9016879489064789" data-ad-slot="7945724753"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> <table width="100%" border="0" align=center><tr><td align=right width="50%"><a href="/3/3_17/3_174309_zaklyuchenie.html"><span>ВИСНОВОК</span></a> «-- попередня </td> <td align=center><span>|</span></td><td align=left width="50%"> наступна --» <a href="/3/3_17/3_174311_ID-IDREF-IDREFS.html"><span>ID, IDREF, IDREFS</span></a></td></tr></table> </td><td valign="top"><div id='trafmag_585547c5'>загрузка...</div> <!-- #11776 'om.net.ua_right' --></td></tr></table> <center><img src="/o.gif" width="535" height="22" border="0" alt=""></center> <!--LiveInternet counter--><script type="text/javascript"><!-- document.write("<a href='//www.liveinternet.ru/click' "+ "target=_blank><img src='//counter.yadro.ru/hit?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";"+Math.random()+ "' alt='' title='LiveInternet' "+ "border='0' width='31' height='31'><\/a>") //--></script><!--/LiveInternet--> <center>© om.net.ua</center> <script> var siteid=88652; var cats='13,29,14,18,11,28,32,63,23,7,20,12,72,17,3,62,10,22,19,5,6,30,24,8,26,33,27,21,9,16,25,31'; var adult='0'; document.write('<scr'+'ipt charset="windows-1251" type="text/jav'+'ascript" src="//sitorew.com/li'+'ve.js?'+Math.random()+'"></scr'+'ipt>'); </script> <script type='text/javascript' async src='//trafmag.com/sitecode-06104.js'></script> </body> </html>