Действительно ли уместно использовать неASCII (естественный язык) XML-тэги?

Действительно ли уместно использовать XML-тэги (имена элементов), записанные на естественных языках неASCII? Спецификация XML позволяет его (см. Имена и Исключения), но я не мог найти лучшие практики об этом в W3C и связал страницы.

То, что я ищу, является практическим советом, относительно которого инструменты поддерживают это, могут ли важные XML-связанные технологии, такие как XSLT и XForms иметь проблемы с ним и т.д.

Я думаю, что Andrey и Tomalak упускают суть. XML не обязательно читается программистами, он читается многими различными профессионалами. Таким образом, аргументы, сравнивающие его с исходным кодом, не обязательно применяются.

Позвольте мне разъясниться: Я имею в виду болгарский легальный домен, где много условий характерны для болгарского судебного процесса и даже не могут иметь точных английских переводов. Перевод их был бы трудоемким, неточным и непрактичным. Транслитерация к ASCII является субоптимальной.

Таким образом, назад к вопросу: с какими ограничениями инструмента я столкнулся бы? (Eclipse поддерживает UTF, таким образом писание xpaths не было бы проблемой.)

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

8
задан Vladimir Alexiev 8 October 2010 в 11:18
поделиться

5 ответов

Короткий ответ: Вы можете называть свои элементы XML как угодно.

Немного более длинный ответ: Если вы хотите использовать наиболее переносимый/поддерживаемый XML, вам, вероятно, следует использовать имена элементов только ASCII. Я не могу придумать ни одной веской причины для использования других символов в имени элемента, и это, безусловно, помогает работать с XML в самых разных местах.

Подумайте о работе с узлами XML с помощью какого-нибудь языка программирования, файлы исходного кода которого не обязательно имеют кодировку UTF-8. Например, вам будет трудно написать работающие выражения XPath на таком языке. Или сопровождающие/программисты, которые не говорят на языке, на котором написаны имена ваших элементов, но отвечают за исходный код. Например, если имена элементов написаны кириллицей, вы как бы сами себя ограничиваете. Имена элементов должны нести структуру и смысл, и нет никаких видимых причин, которые бы исключали ASCII для этой цели.

2
ответ дан 5 December 2019 в 17:35
поделиться

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

Это поможет отделить инструменты, поддерживающие XML, от инструментов, которые утверждают, что это делают, а которые на самом деле не поддерживают.

2
ответ дан 5 December 2019 в 17:35
поделиться

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

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

Я думаю об этом: вы могли бы разработать свою программу так, чтобы любую юридическую структуру можно было свободно изменять из пользовательского интерфейса (может быть, на специальной панели «администратора», но все еще далеко от кода), и ни в коем случае путь жестко привязан к формату файла. Причина этого в том, что меняются законы, меняется судебная практика и юридические условия.(Что ж, некоторые этого не делают)

Это может позволить вам создать довольно общий формат файла (подумайте о таком, который можно было бы использовать в США или Японии, даже если вы не планируете это делать на самом деле, это Таким образом, ваши изменения в разработке гибкого формата файла будут больше)

Это может быть сложнее. Вы должны быть готовы работать с непоследовательными, неполными или иным образом недостоверными данными. Но вы все равно должны это делать. И вы также можете быть вознаграждены: формат файла может быть более чистым и ориентированным на будущее, что сделает ваше программное обеспечение более гибким. А может и нет. Обратите внимание на майс, мог здесь. На самом деле это зависит от вашего конкретного компромисса в дизайне.

И, конечно же, здесь нужен баланс. В конце концов, бремя разработки надежной и гибкой системы ложится на вас. Вы можете написать теги на болгарском языке. Я из Бразилии, и мне кажется странным думать о чем-то подобном, но это может сработать.

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

1
ответ дан 5 December 2019 в 17:35
поделиться

Если содержимое документы будут на болгарском языке, тогда должна быть разметка.

Если ваша цепочка инструментов не может анализировать теги на этом языке, то как вы можете быть уверены, что она правильно обрабатывает контент?

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

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

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

Проверьте пример, как показано ниже.

<user name="hero">     
  <address>
     <street></street>    
  </address>    
</user>

спасибо.

0
ответ дан 5 December 2019 в 17:35
поделиться
Другие вопросы по тегам:

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