Я не уверен, что будет хорошей XML-структурой для следующего ...
Предположим, что тип поля, скажем, , может иметь разные «разновидности», например, любой человек являетсялокальная ссылка определяется только некоторым идентификатором, или это глобальная ссылка с различными элементами адреса.Какова будет хорошая структура XML для этого, чтобы ее можно было легко описать в схеме (файл xsd)?
Я вижу две стратегии - обе с некоторыми существенными недостатками:
тип person определяется как отдельный элемент, скажем, , но тогда я предполагаю, что схема не может определить, какие из типов конкретных полей являются обязательными:
<person>
<type>local</type>
<id>12345</id>
</person>
<person>
<type>global</type>
<name>Some Name</name>
<address>Some Street 42</address>
<city>Some City</some>
</person>
В этом случае должен толькобыть обязательным для "локальных" типов лиц и аналогично полям для "глобальных" типов лиц.
Другая стратегия заключается в определении нового типа узла для каждого подтипа человека, но тогда мы не можем сказать, чтокаждый подтип на самом деле просто разновидность :
<personLocal>
<id>12345</id>
</personLocal>
<personGlobal>
<name>Some Name</name>
<address>Some Street 42</address>
<city>Some City</some>
</personGlobal>
Какова хорошая стратегия для моделирования таких структур?