Именование XML-тегов - PullRequest
       1

Именование XML-тегов

0 голосов
/ 12 сентября 2010

Это не технический вопрос.Больше стандартизации.У меня есть куча бизнес-объектов, которые мне нужно сериализовать в XML.В своей простейшей форме я получил объект X, содержащий объекты типа Y. Y расширен до Y1, Y2, Y3.

Мой вопрос заключается в следующем:

<X>
  <Y>
    <Y1 />
    <Y2 />
    <Y1 />
    <Y3 />
  </Y>
</X>

или:

<X>
  <Y Type="Y1" />
  <Y Type="Y2" />
</X>

Конечно, первый способ более читабелен, и именно об этом я и думаю.Любая причина, почему это не хорошо?Я думаю, что я после мнения ...;)

Ответы [ 3 ]

2 голосов
/ 12 сентября 2010

Я не думаю, что есть ответ на такой общий вопрос - вам действительно нужно привести более конкретный пример того, чего вы пытаетесь достичь. Формат не существует в вакууме; ожидаемое использование действительно имеет значение («форма следует за функцией») и здесь.

1 голос
/ 13 сентября 2010

Я пытаюсь объяснить другими словами, что другие люди уже написали вам. Ваш вопрос содержит слишком мало информации для ответа . Почему?

По моему мнению, основная проблема в вашем вопросе состоит в том, что вы слишком мало предоставляете нам информацию о предмете, где вы хотите использовать XML. XML - это метаязык , а не язык. XML определяет только некоторые простые базовые правила. Например, XHTML, XML Schema или XQuery являются языками на основе XML. Как мы можем сравнить там? Гораздо проще дать вам рекомендацию об использовании какой-либо языковой конструкции одного языка, чтобы дать вам любую рекомендацию в очень общем случае.

Можно указать общие ограничения для элементов XML и атрибутов XML. Несколько хороших ссылок вы можете найти в комментарии jasso к вашему вопросу. Но информация не решит вашу проблему.

Ответ типа "элементы кажутся лучше в вашем случае" решит вашу проблему также не совсем. Например, вы можете записать информацию, что «Y расширяется до Y1, Y2, Y3» различными способами. Например, как

<Y1 base="Y" />
<Y2 base="Y" />
<Y3 base="Y" />

или

<class name="Y1" base="Y" />
<class name="Y2" base="Y" />
<class name="Y3" base="Y" />

или как-то иначе, а не так, как вы написали в своем вопросе. Все эти документы XML различаются языки XML . Проблема заключается не только в информации, которая у вас есть, но и в том, с какой стороны вы хотите посмотреть на информацию. Как мы можем сравнить разные «языки XML», которые могут содержать одну и ту же информацию? Если вы записываете некоторую информацию в XML-файл, вы, вероятно, захотите прочитать информацию позже. Зависит от какой необходимой вам информации позже и , в какой ситуации , в каком порядке и т. Д. Требуются для сравнения различных предлагаемых языков XML, которые можно использовать. 1031 *

Итак, общий вопрос о метаязыке XML не может быть хорошим ответом.

0 голосов
/ 12 сентября 2010

Ну, я думаю, это зависит от того, как вы используете сериализованные данные - для обмена, временного хранения, длительного хранения и т. Д. Более важно, вам нужно создавать экземпляры объектов из сериализации?

Если это для обмена, то я бы сказал, что это имена самих свойств и любые значения, которые они содержат, которые важны не только для типа, поэтому тип должен быть атрибутом.С другой стороны, если это для целей хранения, имена типов могут быть столь же важны, если вам нужно создать экземпляр объекта на основе сериализации, и это может сделать использование имен типов в качестве элементов лучше.

...