Ctrl + E + D : Подсказка по Документу
Формата для команд : Настроенный договорился о параметрах форматирования в Visual Studio (они очень гибки), затем экспортируйте настройки в .settings файл для каждого разработчика для импорта.
Теперь, если все разработчики учатся автоформатировать все, это не только произведет идеальная непротиворечивость форматирования в течение проекта без усилия во всем , но также и значительно уменьшит раздражающие ложные различия в различном инструменте при слиянии нескольких регистраций с Управлением исходным кодом.
, О, я наслаждаюсь хорошими инструментами!
Я использую шаблон:
, если вы используете большую часть, если не все, схему XSD ваших метаданных должны быть там, но если вы не используете атрибуты, это хорошее место.
Итак, с вашим примером я мог бы сделать что-то вроде этого:
<result>
<domain valid="true">
<name>www.google.it</name>
<tld>it</tld>
...
</domain>
</result>
Разработчики WCF предпочли избегать атрибутов, в основном из соображений производительности. Сериализатор по умолчанию WCF, DataContractSerializer, не поддерживает атрибуты (так что это может быть что-то, что нужно учитывать), но он примерно на 10% быстрее, чем более гибкий XmlSerializer в .NET.
Так что, если вы когда-нибудь увидите, что обслуживаете вверх контент, который будет использоваться клиентом WCF, вы, скорее всего, постараетесь по возможности избегать атрибутов.
Атрибуты всегда будут «атомарными», например, строка, int и т. д. - элементы предлагают много так больше гибкости. Кроме того, атрибуты никогда не существуют сами по себе - они всегда прикреплены к элементу.
Из моего личного опыта и личных предпочтений, Скорее всего, я бы попытался использовать в основном элементы и по возможности избегать атрибутов. Но на самом деле это только личные предпочтения и вкус - атрибуты в XML абсолютно допустимы, без проблем.
Это в основном дело вкуса, но есть некоторые технические соображения. Атрибуты немного более ограничены тем, какие символы они могут содержать. У них есть преимущество (?) В том, что порядок несущественен, но их нельзя повторить. Это может немного повлиять на ваш выбор в зависимости от того, какой у вас набор инструментов
Если ваши данные можно представить как имеющие два уровня, где один - это основные данные, а другой - своего рода метаданные (например, метки для определенных элементов), тогда вы можете использовать элементы. для первого и атрибуты для последнего, например:
<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.