Веб-сервисы дизайн API: элементы XML по сравнению с атрибутами [дубликат]

Ctrl +   E  +   D  : Подсказка по Документу

Формата для команд : Настроенный договорился о параметрах форматирования в Visual Studio (они очень гибки), затем экспортируйте настройки в .settings файл для каждого разработчика для импорта.

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

, О, я наслаждаюсь хорошими инструментами!

8
задан Daniel Rikowski 30 August 2010 в 08:38
поделиться

4 ответа

Я использую шаблон:

  • элементы предназначены для данных
  • атрибут предназначены для метаданных (т.е. данных о данных)

, если вы используете большую часть, если не все, схему XSD ваших метаданных должны быть там, но если вы не используете атрибуты, это хорошее место.

Итак, с вашим примером я мог бы сделать что-то вроде этого:

<result>
  <domain valid="true">
    <name>www.google.it</name>
    <tld>it</tld>
    ...
  </domain>
</result>
8
ответ дан 5 December 2019 в 08:52
поделиться

Разработчики WCF предпочли избегать атрибутов, в основном из соображений производительности. Сериализатор по умолчанию WCF, DataContractSerializer, не поддерживает атрибуты (так что это может быть что-то, что нужно учитывать), но он примерно на 10% быстрее, чем более гибкий XmlSerializer в .NET.

Так что, если вы когда-нибудь увидите, что обслуживаете вверх контент, который будет использоваться клиентом WCF, вы, скорее всего, постараетесь по возможности избегать атрибутов.

Атрибуты всегда будут «атомарными», например, строка, int и т. д. - элементы предлагают много так больше гибкости. Кроме того, атрибуты никогда не существуют сами по себе - они всегда прикреплены к элементу.

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

5
ответ дан 5 December 2019 в 08:52
поделиться

Это в основном дело вкуса, но есть некоторые технические соображения. Атрибуты немного более ограничены тем, какие символы они могут содержать. У них есть преимущество (?) В том, что порядок несущественен, но их нельзя повторить. Это может немного повлиять на ваш выбор в зависимости от того, какой у вас набор инструментов

3
ответ дан 5 December 2019 в 08:52
поделиться

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

<result id="1">
  <domain type="default">
    <name unique="false">www.google.it</name>
    <tld>it</tld>
    ...
    <valid>true</true>
  </domain>
</result>

Обычно, если вы удаляете все атрибуты, оставшиеся данные по-прежнему выглядят значимыми.

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

<result>
  <domain name="www.google.it">
    <tld>it</tld>
    ...
    <valid>true</true>
  </domain>
</result>

, который в списке становится:

<results>
  <domain name="www.google.it" />
  <domain name="www.google.co.uk" />
  <domain name="www.google.com" />
</results>

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

3
ответ дан 5 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

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