#xml #perl #coding-style
#xml #perl #стиль кодирования
Вопрос:
Когда я создаю XML-документ, я использую Perl, но этот вопрос не зависит от языка. Большинство людей, похоже, выполняют эту задачу с помощью таких инструментов, как XML:: Writer или XML::LibXML. Это выглядит следующим образом:
my $writer = XML::Writer->new();
my $type = "fancy";
$writer->startTag("pants");
$writer->characters($type);
$writer->endTag("pants");
Я вроде как ненавижу это. Это похоже на ту первую веб-страницу, которую вы создаете как начинающий веб-разработчик, где вы смешиваете весь HTML, CSS и PHP-код в одном файле, потому что вы еще не знакомы с MVC. И все согласны с тем, что это ужасно, и мы должны все это разделить и постараться максимально разделить языки. Это улучшает читаемость, если ничего другого.
Итак, почему это нормально — помещать XML в наш Perl-код? Моя идея состоит в том, чтобы использовать Template::Toolkit точно так же, как мы делаем с HTML. Итак, это будет выглядеть так:
<pants>
[% type %]
<pants>
После этого я могу преобразовать результат в XML::LibXML и проверить строку.
Но я не думаю, что кто-то делает это таким образом. Почему бы и нет? Я что-то упускаю?
Комментарии:
1. Не возводите MVC на пьедестал. Это всего лишь один из многих подходов. Разделение логики и представления — это просто здравый смысл, а не MVC. Оставаясь в теме: есть место для расходуемого кода . Его можно написать по низкой цене, а затем просто переписать по низкой цене, когда требуется изменение, вместо того, чтобы проектировать его с возможностью обслуживания в среде, когда будущие пути разработки нельзя с уверенностью предсказать.
Ответ №1:
Я использовал Template::Toolkit для XML. Я также использовал более программный подход в стиле XML::Writer.
Если у вас есть фиксированная структура XML, которую вы просто заполняете данными, и у вас уже есть Template ::Toolkit, то использование шаблона TT для вашего XML имеет большой смысл; использование шаблона в этом случае, вероятно, значительно упрощает правильное соответствие желаемой схеме. Но, конечно, будьте осторожны с правильным экранированием и кодированием всего для XML, а не HTML.
Если вы программно преобразуете произвольные структурированные данные в XML, то XML::Writer, вероятно, является лучшим выбором: если у вас нет фиксированной схемы, тогда нечего шаблонировать.
XML часто используется в качестве переносимого формата сериализации данных. Типичный пример начинается с некоторой вложенной структуры данных HoHoA и преобразует ее в XML через общий интерфейс сериализации. В системе сериализации есть только структура данных для просмотра, поэтому нет структуры для шаблона.
Кроме того, люди склонны использовать первую технику, которую они изучают, даже когда есть способы получше. Я бы предположил, что большинство людей сначала сталкиваются с XML для сериализации данных (а не для структурирования хранилища документов), поэтому они продолжают использовать методы сериализации, даже когда шаблонный подход был бы более чистым.
Все это (даже первый абзац) одинаково хорошо применимо к JSON (и даже HTML).
Комментарии:
1. С тех пор, как я задал этот вопрос, я видел, что многие другие люди используют Template Toolkit для работы с XML. Итак, я думаю, вы правы, что это допустимый вариант для рассмотрения. Спасибо!