Вопрос

Существуют ли какие - либо формальный рекомендации по оформлению элементов в XML?

Я знаю, что XHTML использует имена элементов в нижнем регистре (в отличие от HTML, который канонически использует верхний регистр, но не чувствителен к регистру).

Но я говорю о XML для общего контента.

нижний регистр:

<customer> 
   <accountnumber>619</accountnumber>
   <name>Shelby Lake</name>
</customer>

Кейс для верблюдов:

<customer> 
   <accountNumber>619</accountNumber>
   <name>Shelby Lake</name>
</customer>

Паскаль - Кейс:

<Customer> 
   <AccountNumber>619</AccountNumber>
   <Name>Shelby Lake</Name>
</Customer>

ВЕРХНИЙ РЕГИСТР:

<CUSTOMER> 
   <ACCOUNTNUMBER>619</ACCOUNTNUMBER>
   <NAME>Shelby Lake</NAME>
</CUSTOMER>

Примечание: Я ищу цитируемые рекомендации, а не мнения.Но мнение, набравшее наибольшее количество голосов "за", можно считать ориентиром.

Это было полезно?

Решение

Большинство стандартов XML, исходящих из W3C, как правило, используют нижний регистр с дефисами.

Существует философское различие между представлением XML как формата для документов, нейтральных к платформе, что пытаются поощрять стандарты W3C, и такими языками, как XAML, которые рассматривают XML как сериализацию объектного графа, специфичного для платформы.

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

Если да, то вы, возможно, захотите вписаться в XHTML, XSLT, SVG, XProc, RelaxNG и остальные.

Другие советы

Не то чтобы это имело значение, но я всегда был неравнодушен к PascalCase для элементов и camelCase для атрибутов:

<Root>
  <ParentElement attributeId="1">
    <ChildElement attributeName="foo" />
  </ParentElement>
</Root>

Официальной рекомендации нет.

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

Таким образом, .Net XML имеет тенденцию использовать ProperCasing (witness XAML), в то время как другие XML будут использовать camelCasing, python_conventions, dot.naming и даже COBOL-СОГЛАШЕНИЯ.Похоже, W3C немного нравится использовать строчные буквы с тире (напримерXSLT) или просто приведенные в нижнем регистре слова (напримерMathML).

Мне нравятся все строчные буквы и никаких подчеркиваний, так как это означает меньшее использование клавиши [Shift], а мои пальцы немного ленивы.:)

Чтобы добавить к ответу Metro Smurf.

Национальная модель обмена информацией (NIEM: http://en.wikipedia.org/wiki/National_Information_Exchange_Model) говорит использовать:

  • Верхний чехол camelCase (PascalCase) для элементов.
  • (нижний) camelCase для атрибутов.

NIEM - хороший вариант, когда вы хотите соответствовать какому-то стандарту.

Смотрите на Правила именования и оформления XML СЕФАКТ ООН Техническая спецификация Версия 3.0 на странице 23 приведены некоторые примеры правил, используемых в нескольких стандартах.

Особенности (со страницы 23 версии 3.0 от 17 декабря 2009 года):

  • Для именования атрибутов НЕОБХОДИМО использовать lowerCamelCase (LCC).
  • Верхний регистр (UCC) ДОЛЖЕН использоваться для присвоения имен элементам и типам.
  • Имена элементов, атрибутов и типов ДОЛЖНЫ быть в единственном числе, если только само понятие не является множественным.

(другая ссылка, шведский сайт)

Чтобы подробнее остановиться на мой комментарий выше:использование 'нижнего регистра с дефисами' имеет некоторые проблемы в XSLT.В частности, легко спутать узел, называемый, скажем, "year-from-age", с формулой "year - age" (напримервычтите возраст из года).

Как указывает @KarlKieninger, это проблема только на человеческом уровне, а не для анализатора XSLT.Однако, поскольку это часто будет не выдавать ошибку, использование "нижнего регистра с дефисами" в качестве стандарта напрашивается на неприятности, ИМХО.

Несколько уместных примеров:

<a>1</a><b>1</b>
<xsl:value-of select="a+b"/>
outputs 2, as expected

<a>1</a><b>1</b>
<xsl:value-of select="a-b"/>
DOES NOT ERROR, BUT OUTPUTS NOTHING AT ALL

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

<a-b>1</a-b><c>1</c>
<xsl:value-of select="a-b -c"/>
outputs 0, as expected

Но обратите внимание, как сбивает с толку все вышесказанное при чтении!

<a>1</a><a-b>3</a-b><b>2</b>
<xsl:value-of select="a-b"/>
outputs 3

<a>1</a><a-b>3</a-b><b>2</b>
<xsl:value-of select="a -b"/>
outputs -1

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

Руководство по стилю Google рекомендует (возможно, даже предписывает) camelCase для всех имен элементов, а также имен атрибутов.

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

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

Я склоняюсь к строчным буквам, при необходимости с тире (к тому же быстрее набирать текст).Смешивание регистров в XML просто кажется мне неправильным.

Кэмел кейс получает мой голос.

Что касается приведенных примеров, возможно, на этот вопрос можно прийти по ссылке, которую люди приводят.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top