Что лучше между значением и атрибутом в XML? [Дубликат]

Еще одно приложение - это интрузивные списки. Тип элемента может рассказать о том, каковы его следующие / предыдущие указатели. Таким образом, список не использует жестко заданные имена, но все равно может использовать существующие указатели:

// say this is some existing structure. And we want to use
// a list. We can tell it that the next pointer
// is apple::next.
struct apple {
    int data;
    apple * next;
};

// simple example of a minimal intrusive list. Could specify the
// member pointer as template argument too, if we wanted:
// template<typename E, E *E::*next_ptr>
template<typename E>
struct List {
    List(E *E::*next_ptr):head(0), next_ptr(next_ptr) { }

    void add(E &e) {
        // access its next pointer by the member pointer
        e.*next_ptr = head;
        head = &e;
    }

    E * head;
    E *E::*next_ptr;
};

int main() {
    List<apple> lst(&apple::next);

    apple a;
    lst.add(a);
}
1
задан David Green 16 November 2012 в 05:16
поделиться

3 ответа

Ни один из них не является более «правильным», чем другой, оба будут работать для вашего примера. Ничто не нарушает никаких правил.

Я сказал, что согласен с W3Schools на этом, поскольку эти данные должны проходить внутри дочерних элементов, а не из атрибутов. Особенно такие вещи, как IP-адреса, просто FEEL, как данные, которые должны быть дочерним элементом, а не атрибутом. Атрибуты, которые я обычно использую для метаданных, таких как автоматически сгенерированные идентификаторы.

Это особенно верно, если позже вы хотите учитывать расширение - например, что, если вы хотите связать несколько IP-адресов? С дочерними элементами вы можете просто добавить еще один элемент, но с атрибутами вы должны придумать новое имя атрибута для каждого добавления (ip1, ip2, ip3 ...).

2
ответ дан ean5533 26 August 2018 в 16:38
поделиться

Отсутствует «правильный» способ представления данных в XML при выборе между использованием элементов или атрибутов свойств объекта. Выберите все, что работает для вас.

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

Сторона примечания: «XML-схема» обычно означает другую вещь - структурированная схема для XML ... что у вас есть, я бы назвал «представление данных в XML».

2
ответ дан Alexei Levenkov 26 August 2018 в 16:38
поделиться

Классическая статья о том, как выбирать между элементами и атрибутами, приведена здесь:

http://xml.coverpages.org/elementsAndAttrs.html

Я отмечаю, что в конце страницы он цитирует Джона Коуэна, цитируя меня: «Бегунники всегда задают этот вопрос. Те, у кого небольшой опыт, выражают свое мнение страстно. Эксперты говорят вам, что нет правильного ответа».

0
ответ дан Michael Kay 26 August 2018 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: