Альтернатива XML, которая также поддерживает выражения / методы - PullRequest
0 голосов
/ 02 августа 2011

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

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

    <PagePart>
        <profileTag>**getAddress**</profileTag>
        <text>123 Example St NW</text>
        <fontFile>Helvetica.TTF</fontFile>
        <fontName>Helvetica</fontName>
        <fontStyle>0</fontStyle>
        <fontAlignment>0</fontAlignment>
        <fontSize>18</fontSize>
        <positionLeft>19</positionLeft>
        <positionTop>88</positionTop>
        <Color>
            <r>0</r>
            <g>130</g>
            <b>200</b>
        </Color>
        <visibility>false</visibility>
    </PagePart>

getAddress внутри profileTag - это метод в нашей системе, который вызывается при инициализации нового экземпляра шаблона.Когда мы добавляем новые шаблоны, у нас есть потребность в создании необычных строк, подобных этому

 public String getBusinessPhoneWithTitle() {
        if (!phone.isEmpty()) return "B  " + phone;
        else return "";
    }

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

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

Ответы [ 4 ]

1 голос
/ 02 августа 2011

Задумывались ли вы об использовании XPath в качестве языка сценариев?Я видел приложения, которые очень успешно используют XML-структуру, подобную вашей, для фиксированной части, а затем встраивают выражения XPath для вещей, которые необходимо вычислить (например, процентные ставки или обменные курсы).Вы можете выполнить обработку, оценивая выражения XPath по мере их поступления (из Java или из XSLT с использованием расширенияvalu ()), или вы можете преобразовать весь документ в таблицу стилей XSLT, которая затем эффективно оценивает себя.

1 голос
/ 02 августа 2011

Посмотрите на Латекс [ wiki ].

1 голос
/ 02 августа 2011

Вы можете использовать шаблоны скорости с вашей Java для создания XML.Существует чистый Java API, который вы можете встроить прямо в свое приложение.Домашний сайт: http://velocity.apache.org/

0 голосов
/ 02 августа 2011

Планируете ли вы публиковать документы разных форматов на основе шаблона? Quark Express кажется вам лучшей альтернативой.Я знаю многих людей в полиграфическом бизнесе, которые используют это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...