XML, DTD: как сделать порядок неважным

Я начал с использования XML-файла и парсера как удобного способа хранения моих данных

Я хочу использовать DTD для проверки структуры xml файлы по прибытии.

Вот мой файл DTD

< ?xml version="1.0" encoding="UTF-8"?>
< !ELEMENT document (level*)>
< !ELEMENT level (file,filelName?,fileNumber?)>
< !ELEMENT file (#PCDATA)>
< !ELEMENT filelName (#PCDATA)>
< !ELEMENT fileNumber (#PCDATA)>

(обратите внимание, что fileName и fileNumber на самом деле являются необязательными)

и

<document>
 <level>
  <file>group1file01</file>
 </level>
 <level>
  <file>group1file02</file>
  <fileName>file 2</fileName>
  <fileNumber>0</fileNumber>
 </level>
...

, как таковые, все это работает нормально. (Я использую опцию eclipse "validate", чтобы проверить это на данный момент)

однако во время тестирования я получил то, что я считаю странной ошибкой

, если я

 <level>
  <levelName>Level 2</levelName>
  <levelNumber>0</levelNumber>
        <file>group1level02</file>
 </level>

изменяю порядок строк, Eclipse отказывается проверять ее ...

Мне было интересно, была ли это проблема с Eclipse, или же порядок действительно важен.

Если порядок важен, как я могу изменить DTD, чтобы оно работало независимо от порядка элементов?

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

16
задан Rob Kielty 14 November 2012 в 10:55
поделиться