Существуют ли стандарты кодирования для XML-файлов?

Я хотел бы знать, существуют ли какие-либо стандарты кодирования xml.

<?xml version="1.0"?>
<overlay id="tutorboy-toolbar-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <toolbox id="navigator-toolbox">
        <toolbar id="tutorboy-toolbar-Toolbar" 
                  toolbarname="TutorBoy Toolbar" 
                  accesskey="T" 
                  class="chromeclass-toolbar" 
                  context="toolbar-context-menu" 
                  hidden="false" 
                  persist="hidden">
              <toolbarbutton label="TutorBoy" 
                                id="tutorboy-toolbar-button-home" 
                                accesskey="d" 
                                image="chrome://tutorboy-toolbar/skin/logo.png" 
                                oncommand="loadURL('http://tutorboy.com');" 
                                tooltiptext="Click here to go to the Tutorboy.com homepage." /> 

разрешен ли такой способ расположения?


person coderex    schedule 01.07.2009    source источник
comment
Вас интересуют стандеры или стандеры?   -  person Matthew Groves    schedule 02.07.2009
comment
Неопределенный вопрос, пожалуйста, уточните.   -  person VolkerK    schedule 02.07.2009
comment
xml не язык программирования;)   -  person Byron Whitlock    schedule 02.07.2009
comment
Я предполагаю, что ОП спрашивает о форматировании XML: пробелы, разрывы строк и т. Д.   -  person ChrisW    schedule 02.07.2009
comment
Фактически, вы предоставили недопустимый фрагмент XML, поэтому: Нет, это не разрешено!   -  person Boldewyn    schedule 05.07.2009


Ответы (6)


W3C определяет рекомендации по спецификации XML: http://www.w3.org/TR/REC-xml/

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

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

Если вы создаете XML-документ, который другие будут читать/изменять на регулярной основе, то, очевидно, вы захотите уделить внимание тому, чтобы документ оставался удобочитаемым. То, что является «читабельным», определяется всеми, кто участвует в этой конкретной команде или проекте.

person Jeff L    schedule 01.07.2009
comment
Именно так. Пустое пространство должно быть совершенно бессмысленным с точки зрения семантики, а его наличие или отсутствие — дело вкуса. А поскольку XML в первую очередь не предназначен для удобочитаемости, форматирование не имеет особого значения. - person GalacticCowboy; 02.07.2009
comment
@Jeff L Я уверен, что когда он был впервые задуман, не ожидалось, что XML будет широко использоваться людьми. Но я программист по контракту для .Net/WPF и Android. В обеих средах я каждый день по уши в глубоком XML, потому что это их язык форматирования пользовательского интерфейса. У Microsoft есть инструмент под названием Expression Blend, позволяющий WYSIWYG-проектировать XAML, но это очень дорогой инструмент, поэтому я никогда не видел его в использовании ни в одном магазине, где я работал. Собственный визуальный конструктор Visual Studio требует тщательной настройки результирующего XAML. Android/Eclipse в значительной степени требует ручного кодирования. - person user316117; 15.03.2013
comment
XML-документы @GalacticCowboy должны быть удобочитаемыми и достаточно четкими. из w3.org/TR/REC-xml/#sec-origin -цели - пункт 6. - person low_rents; 14.01.2015

Ну, я бы посоветовал посмотреть

http://www.xfront.com/BestPracticesHomepage.html или результаты любого поиска Google в соответствии с лучшими практиками XML.

Я бы сказал, что стандарты включают ссылку на файл XSD, правильные escape-символы; и т. д. и т. д.

person ist_lion    schedule 01.07.2009

Существует одно ссылочное форматирование, XML Canonical, которое реализовано в таких инструментах, как xmllint (опция --c14n). Таким образом, эти инструменты можно использовать в качестве красивых принтеров.

Но, конечно, вас не заставляют его использовать. Как и любые правила форматирования, это дело вкуса. Просто будьте последовательны.

person bortzmeyer    schedule 02.07.2009
comment
На самом деле это своего рода стандарт форматирования. ИМХО, это ответ на вопрос. - person Boldewyn; 05.07.2009
comment
Однако это не стандартизирует отступы. xml-c14n не зависит от схемы и поэтому сохраняет большую часть пробелов (например, отступы) при преобразовании документа в его каноническую форму. Не зная схемы, невозможно узнать, какие пробелы семантически важны. То, что выглядит как пробел в отступах, может быть семантически важным содержимым в смешанном содержании элементы. - person Wim Coenen; 19.11.2015

https://en.wikipedia.org/wiki/XML#Well-formedness_and_error-handling

Посмотрите в разделе "Правильно сформированность"

Стандартов не так много, так как он должен быть очень гибким.

person Sam    schedule 01.07.2009
comment
В частности, опубликованный XML имеет неправильный формат. Вас заинтересуют следующие: может быть только один элемент корневого уровня, и каждый тег, который не является самозакрывающимся (не заканчивается на /› ), должен иметь закрывающий тег. - person GalacticCowboy; 02.07.2009

общее практическое правило: размещайте данные в отдельных элементах, а метаданные — в атрибутах.

person tache    schedule 05.02.2011

Я предлагаю вам взглянуть на XMLPatterns. Вы не найдете предложений по «стилю кодирования», но найдете интересные шаблоны проектирования (а-ля GangOfFour) для структуры XML-документа.

Что касается «стиля кодирования», я бы проверил примеры и попытался им подражать. Если вы сомневаетесь, попробуйте разные стратегии и найдите ту, которая понятна и привлекательна. Мое мнение о вашем примере положительное. имена тегов/атрибутов, однако, могут быть проблемой: строчные буквы без пробелов, строчные буквы подчеркивания с пробелами, верблюжий регистр, верблюжий регистр с заглавной буквы?

person Stefano Borini    schedule 05.07.2009