Существуют ли какие-либо формальные рекомендации по обтеканию элементов в 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 для Elements и camelCase для атрибутов:
<Root>
<ParentElement attributeId="1">
<ChildElement attributeName="foo" />
</ParentElement>
</Root>
Официальной рекомендации нет.
Поскольку XML был разработан с двумя целями хранения документов и обмена информацией между разрозненными системами, он был спроектирован таким образом, чтобы соответствовать приложениям, использующим его.
Итак. XML XML имеет тенденцию использовать ProperCasing (свидетельство XAML), в то время как другой XML будет использовать camelCasing, python_conventions, dot.naming и даже COBOL-CONVENTIONS. W3C, по-видимому, похож на нижний регистр с тире - довольно-разрядный (например, XSLT) или просто на несколько секунд (например, MathML).
Мне нравится весь нижний регистр и не подчеркивается, поскольку это означает меньшее использование клавиши [Shift], а мои пальцы немного ленивы.:)
Чтобы добавить к ответам Metro Smurf.
Национальная модель обмена информацией (NIEM: http://en.wikipedia.org/wiki/National_Information_Exchange_Model) говорит:
NIEM делает хороший вариант, если вы хотите соответствовать стандарту.
Для некоторых примеров правил, используемых в нескольких стандартах, см. Техническая спецификация правил именования и проектирования XML Names and Design Rules Version 3.0 стр. 23. p >
Особенности (со страницы 23 версии 3.0 от 17 декабря 2009 года):
Чтобы расширить мой комментарий выше: использование "строчных букв с дефисами" имеет некоторые проблемы в XSLT. В частности, легко ввести в заблуждение node, называемый "год от года" с формулой "год - возраст" (например, вычесть возраст из года).
Как отмечает @KarlKieninger, это только проблема на человеческом уровне, а не для синтаксического анализа XSLT. Однако, поскольку это часто не вызывает ошибки, использование "нижнего регистра с дефисами" в качестве стандарта запрашивает проблемы, IMHO.
Некоторые подходящие примеры:
<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 просто мне кажется неправильным.
Случай с верблюдом получает мой голос.
Что касается цитируемых примеров, возможно, этот вопрос может прийти по ссылке, которую цитируют люди.