Может быть, я не вижу леса за деревьями, но вот оно:
Я «проектирую» документ XML и до сих пор придумал что-то вроде следующего:
<element key="root">
<data>...</data>
<elements>
<element key="foo">
<data>...</data>
</element>
<element key="bar">
<data>...</data>
</element>
</elements>
</element>
Так что это простая иерархическая структура. Что я хочу сделать сейчас, так это иметь ссылки от одного элемента к любому другому элементу в любой точке иерархии. Это было бы тривиально, если бы у каждого элемента был уникальный идентификатор, но это не так. Пока я только планирую гарантировать, что ключ каждого элемента уникален на своем уровне (так же, как имена файлов в структуре каталогов).
Другими словами, если бы у меня были полностью определенные ключи, такие как root.foo
, гарантировать ссылочную целостность было бы просто. Но тогда я буду хранить избыточную информацию (я уже знаю, что foo
является подэлементом root
, зачем хранить эту информацию дважды?).
Я понимаю, что это по сути косметическая проблема. Возможно, одно из самых простых решений - просто назначить идентификаторы автоматически и покончить с этим. Но это довольно не элегантно (и подвержено ошибкам, если у вас нет приятного внешнего интерфейса для редактирования файла), поэтому я надеялся на лучший способ сделать это.
Есть ли способ реализовать это в XML-схеме?