XML
От: x-code  
Дата: 19.07.18 18:20
Оценка:
Как вы храните контент в XML и почему именно так?
Можно сказать, есть два варианта.
1. Хранить все в атрибутах, а теги использовать только для описания иерархической структуры (вложенности одних частей документа в другие)
2. Выделить некий "главный" тип контента и хранить его внутри тегов вместе с иерархической структурой, остальной ("не главный") контент в атрибутах

<tag a1="v1" a2="v2">
  <tag a1="v3" a2="v4">
</tag>

или 

<tag a2="v2">
  v1
  <tag a2="v4">
    v3
  </tag>
</tag>
Re: XML
От: Voblin Россия http://maslyaew.narod.ru/
Дата: 19.07.18 19:33
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Как вы храните контент в XML и почему именно так?

XC>Можно сказать, есть два варианта.
XC>1. Хранить все в атрибутах, а теги использовать только для описания иерархической структуры (вложенности одних частей документа в другие)
XC>2. Выделить некий "главный" тип контента и хранить его внутри тегов вместе с иерархической структурой, остальной ("не главный") контент в атрибутах

Обычно смесь вариантов 1 и 2. То есть, например, если нужно сохранить в XML книжку, то что-то вроде такого:
<book title="Война и мир" author="Толстой Лев Николаевич">
  <annotation>
    Классика для ценителей. Экстремально много букв. Для смелых духом читателей.
  </annotation>
  <text>
    .........................
    .........................
    .........................
    .........................
  </text>
</book>


То есть если значение атрибута может занять пару мегабайт, лучше его пустить отдельным безатрибутным (или вклячить в атрибут указание типа значения) вложенным тегом.
Re: XML
От: DenisCh Россия  
Дата: 20.07.18 07:11
Оценка:
Здравствуйте, x-code, Вы писали:

x> Как вы храните контент в XML и почему именно так?


Никак не храню.

Ну только fb2
avalon/2.0.3
Re: XML
От: Chorkov Россия  
Дата: 20.07.18 11:55
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Как вы храните контент в XML и почему именно так?

XC>Можно сказать, есть два варианта.
XC>1. Хранить все в атрибутах, а теги использовать только для описания иерархической структуры (вложенности одних частей документа в другие)
XC>2. Выделить некий "главный" тип контента и хранить его внутри тегов вместе с иерархической структурой, остальной ("не главный") контент в атрибутах

Использую Text, только при соблюдении трех условий:
1) Это значение выделяется из прочих свойств "естественным образом".
2) Ожидаемый размер текстового представления этого свойства достаточно велик. (Следствие: для дат и чисел, всегда используются атрибуты.)
3) У узла нет других дочерних узлов. (Часто возникает неоднозначность: как склеивать переводы строк перед/после вставленного дочернего узла; как форматировать... )
Re: XML
От: Географ Россия нет
Дата: 21.07.18 19:58
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Как вы храните контент в XML и почему именно так?
XC>Можно сказать, есть два варианта.
XC>1. Хранить все в атрибутах, а теги использовать только для описания иерархической структуры (вложенности одних частей документа в другие)
XC>2. Выделить некий "главный" тип контента и хранить его внутри тегов вместе с иерархической структурой, остальной ("не главный") контент в атрибутах

XC>

XC><tag a1="v1" a2="v2">
XC>  <tag a1="v3" a2="v4">
XC></tag>

XC>или 

XC><tag a2="v2">
XC>  v1
XC>  <tag a2="v4">
XC>    v3
XC>  </tag>
XC></tag>
XC>


В атрибутах не храним. Потерявши, горько плачем . А без шуток, то ничего в атрибутах не хранится. Досталась мне такая система исторически. И она вполне удовлетворяет всем встречающимся задачкам хранения информации или передачи параметров в процедуры БД. Если требуется передать какой-либо массив, используется несколько одинаковых тегов на одном уровне вложенности, размещаемых подряд.
Re: XML
От: no4  
Дата: 08.08.18 13:28
Оценка: +1
Здравствуйте, x-code, Вы писали:

XC>Как вы храните контент в XML и почему именно так?


Вот тут, например,есть набор правил.
https://www.ibm.com/developerworks/library/x-eleatt/index.html

Чисто логически:

Буква M в xml означает Markup — Разметка. То есть у нас есть некий текст, области которого мы хотим различать и навешать дополнительные атрибуты.
Для "немаркапа" есть YAML и JSON.
Но XML распространен поэтому его тоже используют как немаркап.
Так что надо решить сначала нужена ли маркапность.
Если нужна, то брать текст и размечать его метаинформацией (атрибутами и элементами).
Если не нужна, то брать модель данных и примеривать, влезет ли она в элмент и атрибут.

Еще можно посмотреть готовые XML форматы для серилизации объектов типа XAML и спереть все оттуда или зареюзать.
Re: XML
От: glh Россия  
Дата: 30.10.18 21:52
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Как вы храните контент в XML и почему именно так?

XC>Можно сказать, есть два варианта.
XC>1. Хранить все в атрибутах, а теги использовать только для описания иерархической структуры (вложенности одних частей документа в другие)
XC>2. Выделить некий "главный" тип контента и хранить его внутри тегов вместе с иерархической структурой, остальной ("не главный") контент в атрибутах

XC>
XC><tag a1="v1" a2="v2">
XC>  <tag a1="v3" a2="v4">
XC></tag>

XC>или 

XC><tag a2="v2">
XC>  v1
XC>  <tag a2="v4">
XC>    v3
XC>  </tag>
XC></tag>
XC>


Это древний холивар, легко гуглится.
Но...
Если это не легаси, а дизайниться с 0.

Атрибуты в XML — описательный, вспомогательный элемент, призванный помочь интерпретировать значение/дополнить значение в узле.
Для атрибута есть значение по умолчанию.
Вроде плюсы и кончились.

XC><tag a2="v2">

XC> v1
XC> <tag a2="v4">
Некрасиво.
Совсем.
Узел:
— или контейнер/структура;
— или значение.

Для XML/XSD есть тоже свои Design Patterns.
Успехов!
C уважением, Алексей.
------------------------------------------------
Хороших %s не бывает — бывает не худший вариант.
Re: XML
От: Wolverrum Ниоткуда  
Дата: 05.11.18 08:55
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Как вы храните контент в XML и почему именно так?

XC>Можно сказать, есть два варианта.
XC>1. Хранить все в атрибутах, а теги использовать только для описания иерархической структуры (вложенности одних частей документа в другие)
XC>2. Выделить некий "главный" тип контента и хранить его внутри тегов вместе с иерархической структурой, остальной ("не главный") контент в атрибутах


У меня скорее, деление по другим свойствам — если данные "скалярные" либо "невелики" И их не так много, то можно и в атрибут. Если данные имеют внутреннюю структуру — то тут тег или даже тег с CDATA.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.