Основи використання xml schema для визначення елементів, журнал ВРМ world, прес-центр, intersoft

123456789
J123456

Лістинг 2: Фрагмент DTD, що описує елементи з лістингу 1




Лістинг 3: Фрагмент XML Schema, що описує елементи з лістингу





Використання просторів імен в XML Schema.

У реальному світі одна людина може обробляти документи від безлічі кореспондентів, які можуть хотіти по різному представляти свої дані. Більш того, в рамках одногодокумента вони можуть потребувати роздільному зверненні до елементів з одними і тими ж іменами, але в різних контекстах. Як розрізнити один від одного ці різні визначення, що мають одне і те ж ім'я? XML Schema дозволяє розрізняти такі визначення за допомогою поняття простору імен.

Обмеження шаблонів DTD
Незважаючи на те, що шаблони DTD відмінно служили розробникам SGML і HTML протягом 20 років в якості механізму опису структурованої інформації, шаблони DTD мають строгі обмеження в порівнянні з XML Schema. DTD вимагає, щоб елементи складалися з одного з трьох понять:
  • текстового рядка
  • Текстового рядка, і інших дочірніх елементів
  • Набору дочірніх елементовDTD не має синтаксису XML і пропонує тільки обмежену підтримку для типів або просторів імен.


Лістинг 4: Власні і використовуються простору імен


Малюнок 1: Простори назв лістингу 4


Лістинг 5: Множинні вихідні простору імен, які імпортують простір імен.


Лістинг 6: Використання безлічі просторів імен з безлічі схем

Малюнок 2: Простори назв для лістингу 5 та 6

Визначення елементів.

Визначити елемент означає визначити його ім'я і модель змісту. У XML Schema модель змісту елемента визначається за допомогою його типу. При цьому окремі елементи XML-документа можуть мати тільки значення, що задовольняють типам, визначеним у їх схемою.

прості типи
Специфікація XML Schema визначає набір простих типів, наведений в Таблиця 2: зумовленість прості типи.

Тип може бути простим або складним. Простий тип не може містити елементи або атрибути. Складний тип може містити вкладені елементів і атрибути. (Приклади наведені вище в цій статті є простими типами (див. ProductCode)). Специфікація XML Schema включає також зумовлені прості типи (див. Праворуч Прості типи). Похідний простий тип може набувати значень всередині безлічі допустимих значень свого базового типу. Наприклад, значення похідного простого типу ProductCode представляють собою підмножина значень базового типу string.


Прості невложенние елементи мають простий тип

Елемент, який не містить атрибутів або інших елементів може бути визначений як має простий тип, попередньо визначений або визначений користувачем так, як string. integer. decimal. time. ProductCode і ін.


Лістинг 7: Кілька простих типів для елементів




Елементи з атрибутами повинні мати складний тип

Якщо Ви спробуєте додати атрибут currency до простого елементу price з лістингу 7. то це призведе до помилки. Елемент простого типу не може мати атрибути. Якщо ви хочете додати атрибут, ви повинні визначити price як складний тип. У прикладі лістингу 8 ми визначили, що тип називається неіменованого (an anonymous type), якщо не задано явного імені. Іншими словами, атрибут name елемента complexType не визначений.


Лістинг 8: Складний тип елемента








Елементи, які мають вкладені елементи, повинні мати складний тип


Таблиця 1: Порівняння складних типів даних в DTD і XML Schema.


Cool XML<Title><br> <Author>Cool Guy</Author><br> </Book></p> <p><!ELEMENT Book (Title, Author)><br> <!ELEMENT Title (#PCDATA)><br> <!ELEMENT Author (#PCDATA)></p> <p><element name='Book' type='BookType'/><br> <complexType name='BookType'><br> <element name='Title' type='string'/><br> <element name='Author' type='string'/><br> </complexType></p> <p><br>Лістинг 9: Складний тип, визначений за допомогою глобальних простих типів</p> <p><element name='Title' type='string'/><br> <element name='Author' type='string'/><br> <element name='Book' type='BookType'/><br> <complexType name='BookType'><br> <element ref='Title'/><br> <element ref='Author'/><br> </complexType><br><br></p> <p>У прикладах Таблиці 1 і лістингу 9 BookType є глобальним і може використовуватися для визначення інших елементів. На відміну від цього, Лістинг 10 визначає BookType локально в елементі Book і, крім того, робить його неіменованого. Зауважте, що фрагмент XML-документа в Таблиці 1 відповідає всім трьом фрагментами схеми в Таблиці 1. лістингу 9 і лістингу 10.</p> <p><br>Лістинг 10: Приховування BookType як локального типу</p> <p><element name='Title' type='string'/><br> <element name='Author' type='string'/><br> <element name='Book'><br> <complexType><br> <element ref='Title'/><br> <element ref='Author'/><br> </complexType><br> </element><br></p> <h3>Накладання складних умов на елементи</h3> <p>XML Schema надає набагато більшу гнучкість для завдання умов, що накладаються на модель змісту елементів, ніж DTD. На найпростішому рівні, як в DTD, ви можете пов'язувати атрибути з елементами і определітьколічество входжень елементів (тільки одне. Нуля або одного (?), Нуля або більше (*), або одного або більше (+) елементів з даного набору. У XML Schema ви можете висловити також додаткові обмеження, використовуючи, наприклад, атрибути minOccurs і maxOccurs елемента element. а також за допомогою елементів choice. group. і all.</p> <p><br>Лістинг 11: Вираз обмежень на типи елементів</p> <p><element name='Title' type='string'/><br> <element name='Author' type='string'/><br> <element name='Book'><br> <complexType><br> <element ref='Title' minOccurs='0'/><br> <element ref='Author' maxOccurs='2'/><br> </complexType><br> </element><br><br></p> <p><br>Лістинг 12: Індикація того, що для елемента повинні бути визначені всі типи</p> <p><xsd:element name='Title' type='string'/><br> <xsd:element name='Author' type='string'/><br> <xsd:element name='Book'><br> <xsd:complexType><br> <xsd:all><br> <xsd:element ref='Tile'/><br> <xsd:element ref='Author'/><br> </xsd:all><br> </xsd:complexType><br> </xsd:element><br><br></p> <p>Ви можете продовжити дослідження схеми XML за допомогою документації на сайті W3C (див. Ресурси) і переглядаючи для кращого охоплення зону dW XML. Зараз, коли специфікація схеми XML була прийнята як рекомендація W3C, її буде використовувати все більше і більше число людей.</p> </div> </article> </div> </div> </div> <footer class="igrzom-footer clearfix"> <ul> <li><a href="/articles/misc-nemae-harkivski-kladovishha-perepovneni.php">Місць немає Харківські кладовища переповнені</a></li> <li><a href="/articles/pidsumovuvannja-z-umovoju-sumifs.php">Підсумовування з умовою (sumifs</a></li> <li><a href="/articles/alergija-na-pilovij-klishh-simptomi-i-likuvannja.php">Алергія на пиловий кліщ симптоми і лікування</a></li> <li><a href="/articles/zhele-kava-z-molokom.php">Желе «кава з молоком»</a></li> <li><a href="/articles/ribki-z-glini.php">Рибки з глини</a></li> </ul> <p>© Copyright 2016 - 2024 | Всі права захищен</p> <br> <p><a href="/privacy.php">Privacy Policy</a></p> <!--LiveInternet counter--><script type="text/javascript"> document.write("<a href='//www.liveinternet.ru/click' "+ "target=_blank><img src='//counter.yadro.ru/hit?t50.6;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--> </footer> </div> </div></body> </html>