2009-09-21 2 views
1

Возможные Дубликаты:
How to design storing complex object settings in an xml
XML attribute vs XML elementАтрибуты Xml vs Xml внутри свойств?

Что критерии использовать при принятии решения о том, следует ли что-то можно сделать так:

<Blur Type="Gaussian", Amount=5></Blur> 

или

<Blur>Gaussian, 5</Blur> 

Если это # ​​1, то что бы вы положили в скобки?

Также я не знаю, какие значения внутри скобок вызываются (Gaussian, 5): inside properties?

+1

' Gaussian, 5' было бы сложно повторно использовать, поскольку вы смешиваете два значения (атрибуты?) В одном поле. – voyager

+1

Dupe: http://stackoverflow.com/questions/1455872/ – GEOCHET

ответ

2

использовали

<Blur Type="Gaussian" Amount="5"/> 

они называются атрибутами,

внутри iscalled значение узла

2

Это действительно зависит от того, как будет использоваться XML. Мое общее правило:

  • Для простых типов (int, double, string, datetime) используйте атрибуты.
  • Для сложных типов используйте дочерние элементы.
6
  1. Значение внутри тегов XML называется значение тегов.

  2. Ваш второй пример - пример того, как НЕ структурировать XML (в общем, для любого хранилища данных, включенного XML, вы не хотите связывать значение атрибута> 1 с одним блоком, если вы навсегда не гарантируете, что 2 значения никогда не будут использоваться/запрашиваться отдельно и что преимущества производительности связывания значительны).

    Это должно быть вместо этого

<Blur> 
<Type>Gaussian</Type> 
<Amount>5</Amount> 
</Blur> 

Выбор между ними иногда размыты, но very good set of guidelines exists from IBM

+0

fwiw, re: point 1, они называются атрибутами – annakata

4

Ok, в первую очередь первой формы не XML с этой запятой и без кавычек.

Во-вторых, вы говорите о атрибутах против дочерних элементов и это уже покрыты here, here, here и много раз elsewhere.

И, наконец, дверь № 2 в любом случае не является структурой данных любого разумного вида. Как правило: используйте атрибуты, в которых взаимосвязь является метаданными, используйте дочерние элементы, в которых отношение является композицией.

+0

-1 * для чего? * – annakata

+0

Не знаете, почему это проголосовало так, как казалось очень разумный ответ ... –

+0

Спасибо anna, я дал +1. –

0

Я думаю, это зависит от личных предпочтений, если вы предпочитаете:

<blur> 
    <type>Gaussian</type> 
    <amount>5</amount> 
</blur> 

или

<blur type="Gaussian" amount="5" /> 

Который когда-либо делает ваш синтаксический более легким для себя. Иногда легче ориентировать детей, а не атрибуты, которые, очевидно, зависят от того, какой язык вы будете использовать для синтаксического анализа.