2010-09-30 6 views
1

Я создаю иерархии XML, который выглядит примерно так:Должен ли я помещать свои узлы XML в элементы контейнера?

element A 
    0+ element B 
    0+ element C (has PCDATA) 
     (more complex hierarchy below this one, not really relevant) 
    0+ element D 
    0+ element E 
    0+ element F 
    0-1 element G (has PCDATA) 
    0-1 element H (has PCDATA) 

В результате, он начинает выглядеть немного «людно» под элементом А. Должен ли я добавить элементы контейнера, чтобы организовать вещи немного, например:

element A 
    0-1 B-container 
    0+ element B 
     0-1 C-container 
     0+ element C (has PCDATA) 
      (more complex hierarchy below this one, not really relevant) 
    0-1 D-container 
    0+ element D 
    0-1 E-container 
    0+ element E 
    0-1 F-container 
    0+ element F 
    0-1 element G (has PCDATA) 
    0-1 element H (has PCDATA) 

Или это прекрасно, чтобы иметь кучу различных элементов под элементом A?

Этот XML должен потребляться таблицами стилей XSL, в основном написанными пользователями, поэтому я пытаюсь выяснить, что облегчает взаимодействие пользователей.

ответ

2

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

Я бы сказал, что более важно обеспечить, чтобы ваша структура данных обеспечивала интуитивное представление ваших данных. Если то, что вы представляете, является, естественно, иерархическим, ищите структуру, которая представляет ее таким образом. Затем структура будет легче обрабатывать, поскольку ее легче запоминать и визуализировать, а узлы, которые обычно обрабатываются вместе, будут близки друг к другу в дереве.

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

+0

Спасибо. У меня есть куча атрибутов, используемых для данных. Элементы с PCDATA используются только в том случае, если у меня есть многострочный текст, который нужно получить. – Colen

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