Существует ли способ осуществить/сохранить порядок элементов XML в XML-схеме?

Давайте рассмотрим следующую XML-схему:

<?xml version="1.0" encoding="UTF-8"?>
<schema 
    targetNamespace="http://www.example.org/library" 
    elementFormDefault="qualified" 
    xmlns="http://www.w3.org/2001/XMLSchema" 
    xmlns:lib="http://www.example.org/library">

    <element name="library" type="lib:libraryType"></element>

    <complexType name="libraryType">
        <sequence>
            <element name="books" type="lib:booksType"></element>
        </sequence>
    </complexType>

    <complexType name="booksType">
        <sequence>
            <element name="book" type="lib:bookType" 
                     maxOccurs="unbounded" minOccurs="1"></element>
        </sequence>
    </complexType>

    <complexType name="bookType">
        <attribute name="title" type="string"></attribute>
    </complexType>
</schema>

и соответствующий пример XML:

<?xml version="1.0" encoding="UTF-8"?>
<lib:library 
    xmlns:lib="http://www.example.org/library" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.example.org/library src/library.xsd ">

  <lib:books>
    <lib:book title="t1"/>
    <lib:book title="t2"/>
    <lib:book title="t3"/>
  </lib:books>

</lib:library>

Есть ли способ гарантировать что порядок <lib:book .../> элементы сохраняются? Я хочу быть уверенным, что любой синтаксический анализатор, читая XML возвратит книги в указанном Одере, который является первым книга с title="t1", затем книга с title="t2", и наконец книга с title="t3".

Насколько я знаю, что синтаксические анализаторы XML не требуются, чтобы сохранять порядок. Интересно, можно ли осуществить это через XML-схему? Одно быстрое решение для меня добавило бы index припишите <lib:book .../> элемент и делегат заказывают сохранение приложению, читая XML.

Комментарии? Предложения?

9
задан MarcoS 26 May 2010 в 10:07
поделиться