Общий вопрос о стиле XML - PullRequest
       6

Общий вопрос о стиле XML

1 голос
/ 24 августа 2009

Я разрабатываю XML для некоторых пользовательских журналов. В регистраторе есть часть, где разработчик может добавлять пары имя-значение в журнал. Я пытаюсь решить, как должен выглядеть XML. Я пытаюсь решить, должна ли часть имени пары имя-значение быть атрибутом. (Я думаю так). Вот что у меня есть:


<ExtendedProperties>
   <ExtendedProperty name="Name1">Value1</ExtendedProperty>
   <ExtendedProperty name="Name2">Value2</ExtendedProperty>
</ExtendedProperties

Другой вариант (о котором я знаю) - сделать имя значения именем узла:

<Name1>Value1</Name1>
<Name2>Value2</Name2>

Мне больше нравится первый метод (на основе атрибутов), потому что я могу более легко описать документ с помощью XSD, и я вижу, как можно использовать xpath или xquery для доступа ко всем элементам типа «ExtendedProperty». (Доступные имена не предопределены - они могут быть любыми.)

Однако я не трачу много времени на разработку схем XML. Ребята, это выглядит правильно? Есть что-нибудь еще, что я мог бы рассмотреть?

Ответы [ 3 ]

2 голосов
/ 24 августа 2009

Доступные имена не определены заранее - они могут быть чем угодно.

Это делает невозможным использование 2-й формы (с xml-схемой) - поскольку вам нужно знать все действительные имена, используя этот метод

0 голосов
/ 24 августа 2009

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

0 голосов
/ 24 августа 2009

Если вы собираетесь использовать пару элементов ключ-значение, ваш первый вариант - это путь.

В этом случае ваш элемент - это имя типа элемента в коллекции ... ваш атрибут - это ключ ..., а значение - это значение.

Например:

<StringCollection>
    <String name="stringOne">Something</String>
    <String name="stringTwo">Something else</String>
</StringCollection>

Ваш второй путь - это не сгруппированный набор не связанных элементов ... не то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...