2012-02-25 4 views
0

Можно создать дубликат:
XML attribute vs XML elementСтруктурирование XML, атрибутов или узлов?

Я создаю документ XML, который содержит кинотеатры. Мне нужен способ представить объекты определенного кино, но я не уверен, как его структурировать.

Должен ли я иметь каждое средство как узел? И текст внутри этого узла будет либо 1, либо 0 (true для false)? Или было бы лучше иметь каждое средство как атрибут или узел «объектов»?

Атрибуты:

<cinema id="1"> 
    ... 
    <facilities advance_screenings="1" concessions="0" ... >1<facilities> 
</cinema> 

Узлов:

<facilities> 
    <advance_screenings>1</advance_screenings> 
    <audio_description>1</audio_description> 
    <bar>1</bar> 
    <concessions>1</concessions> 
    ... 
</facilities> 

Благодарности.

+0

@DarinDimitrov: Это не полезно. Дизайн XML столь же гибкий и столь же важен, как и дизайн кода. – skaffman

+0

@ skaffman, конечно, я полностью согласен с вами, и это имеет смысл, когда кто-то предоставляет контекст о том, что он проектирует. Этот вопрос для меня совершенно бессмыслен, так как на него можно ответить как с ответами 'use attributes ', так и' use elements', и на этой Земле нет ничего, что могло бы оправдать тот или иной ответ. –

+1

@Nick: Педантичная точка терминологии: атрибуты * являются * узлами. Вы имеете в виду атрибуты против элементов. – skaffman

ответ

2

Это во многом вопрос предпочтения/стиля.

Однако - есть некоторые Эмпирические правила:

  • Non-примитивные типы должны быть элементы (используется термин "узел"). У вас не может быть атрибута, который представляет собой сложный тип, хотя вы можете выполнить сопоставление шаблонов.

  • 1000 атрибутов на одном элементе, вероятно, не является отличным дизайном - стремиться к удобочитаемости человека.

  • В качестве следствия вышеизложенного следует избегать использования 1000 элементов в качестве прямых потомков одного элемента. (Элементы Nest/group в логической структуре).

Имея некоторое чувство, что такая «хорошая структура» является по сравнению с «плохой структурой» является сложным судебным решением, которое занимает много факторов во внимание - такие, как отрасли/контекст, в котором данные были используется и что он представляет. Это похоже на дизайн класса или, вероятно, ближе к дизайну базы данных. Иногда хакерская работа не делает одной йоты разницы - в других случаях семантическая точность имеет первостепенное значение.

Вы получите только хорошее представление об этом через опыт.

+0

Спасибо за конструктивную обратную связь. Ценить это. – Nick

1

Часть красоты/боли XML заключается в том, что такие решения полностью зависят от вас.

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

Но все это субъективно, и на самом деле нет правильного ответа - это полностью, как вы хотите структурировать документ.

0

В этом случае они должны быть подэлементами. Чтобы поставить его в MVC , атрибуты должны содержать информацию о представлении, подэлементы должны содержать информацию о модели.

Смежные вопросы