ID и XML: табличные данные

Статус
Закрыто для дальнейших ответов.

jip

Участник
Топикстартер
Сообщения
13
Реакции
0
Hi, All!

Есть XML-файл с телефонным справочником организации (и соотв.-ий DTD). Его надо импортировать в ID CS 3.0 для внесения изменений и публикации, и экспортировать обратно в XML.

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

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

Кто-нибудь занимался импортом из XML табличных данных? Если использовать таблицы ID, то ID не позволяет навешивать формат на отдельные ячейки строки. И как вливать туда неизвестное число строк? Если использовать форматирование стилями, то как добиться отступа номера телефона от названия отдела? (ведь установка отступа в Paragraph Style влияет на всю строку целиком).
 

Shlyapa

Участник
Сообщения
4 838
Реакции
1
Ответ: ID и XML: табличные данные

jip сказал(а):
(ведь установка отступа в Paragraph Style влияет на всю строку целиком).
А Character Style влияет на отдельный(-ые) символ(-ы).
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Ответ: ID и XML: табличные данные

Скриптом.
 

jip

Участник
Топикстартер
Сообщения
13
Реакции
0
Ответ: ID и XML: табличные данные

Спасибо всем ответившим, проблему неопределенного числа строк попытаюсь решить с помощью скриптов.

Остается непонятным, [можно ли и] как при импорте XML в текстовый фрейм задать отступ номера телефона от левой границы блока. Какие атрибуты формата надо менять?
 

jip

Участник
Топикстартер
Сообщения
13
Реакции
0
Just FYI: Инструменты для импорта из баз данных в ID

(В ходе поиска наткнулся на несколько плагинов, перечисленных ниже. Самому не пригодились - не совсем то, что нужно, да и платные,- но, может, эта информация кому-то принесет пользу)

1. Smart Catalog (триал) (1000 EUR) от WoodWing Software
Цитата из мануала:
Offers linking to text files, XML and to databases such as FileMaker Pro, MS SQL Server and Oracle. This link is bi-directional allowing changes made within the InDesign document to be saved back to the database. Blocks created in SmartLayout can be linked to data through this plug-in.
Недостатки: ничего не автоматизирует (все поля надо вставлять вручную), ограниченное число форматов полей.

2. InData (400 USD) от Em Software
Цитата из мануала:
A plug-in to place database material into InDesign
Фича: вставка только в один text frame.

3. EasyCatalog (триал) (1300 USD) и EasyCatalog Pro от 65bit
Вроде мощная вещь. Недостатки: требует ODBC Data Provider (200 USD), вывод только в виде таблиц.

4. ModeS CatalogBuilder 2.0 от Inforvision
Все на немецком, ничего не понял.
 

jfx

Участник
Сообщения
15
Реакции
0
Ответ: ID и XML: табличные данные

Кто плотно работал со Smart Catalog? Возникли непонятные проблемы: в файле данные есть а в InDesign их невидно. Т.е. часть присутствует но не все :(
Ограничений на кол-во звписей я в документации не нашел, да и не много их у меня <1000.
Ответ нужен срочно, если у кого были подобные проблемы - поделитесь способом решения.
 

banIDit

I love this game!
Сообщения
1 160
Реакции
241
Ответ: ID и XML: табличные данные

Есть XML-файл с телефонным справочником организации (и соотв.-ий DTD). Его надо импортировать в ID CS 3.0 для внесения изменений и публикации, и экспортировать обратно в XML.
Кинь кусочек поковыряться, может и решение родится...
можешь сразу на мыло bonduraШАВКАlist.ru
 

duh

15 лет на форуме
Сообщения
1 422
Реакции
699
Ответ: ID и XML: табличные данные

banIDit сказал(а):
Кинь кусочек поковыряться, может и решение родится...
можешь сразу на мыло bonduraШАВКАlist.ru
Согласен - но лучше выложить тута...
 

jip

Участник
Топикстартер
Сообщения
13
Реакции
0
Ответ: ID и XML: табличные данные

Спасибо ответившим.

Как это обычно бывает, по ходу решения задачи ТЗ изменилось. Первоисточником стал indd-файл, поскольку оператор, к которому стекается информация: а) умеет работать с DTP-приложениями но не знает XML, б) должен сдавать справочник в типографию. А на сайт надо присылать XML, чтобы парсить с помощью PHP.

Задача была реализована где-то весной (см. http://www.dvgu.ru/rus/fesu/info/phones/), я уже успел подзабыть детали, но попытаюсь ниже в общих чертах описать решение.

Телефонный справочник в indd-файле организован в виде блоков story, некоторые из которых содержат полезную информацию. Эта информация структурирована форматированием, каждому ID-стилю (добавлено: несущему полезную информацию) соответствует XML-тэг. Штатные средства ID CS по маппингу style -> XML оказались непригодны из-за проблем с восприятием вложенных блоков. Пришлось реализовать на JavaScript детерминированный конечный автомат (КА) с магазинной памятью (итого 4 файла суммарным объемом 635 строк, 23 кб). Скрипт однократно настраивается на имена стилей indd, тэгов и аттрибутов xml, и их соответствие. Таблица КА состоит из 5 строк (состояний) на 7 столбцов (типов входных символов). Вложенность блоков и длина справочника ограничены только размером RAM.

Скрипт ползает по структуре indd-файла и расставляет метки штатным методом markup(), затем экспортирует XML штатным методом document.exportFile().

После того, как скрипт отработал, оператор закидывает полученный xml-файл на сервер, где тот парсится и складывается в базу данных, откуда извлекается и отсылается броузеру при запросе. Voila!

Cтруктура справочника описана в прилагаемом dtd-файле.
 

Вложения

  • dtd.txt
    1.1 КБ · Просм.: 897

banIDit

I love this game!
Сообщения
1 160
Реакции
241
Ответ: ID и XML: табличные данные

...Пришлось реализовать на JavaScript детерминированный конечный автомат (КА) с магазинной памятью (итого 4 файла суммарным объемом 635 строк, 23 кб)...
Это лихо конечно. :)
А файлик то все-таки закинул бы для интересу, для общего развития. Мало ли с чем в жизни придется столкнуться...
 

jip

Участник
Топикстартер
Сообщения
13
Реакции
0
Ответ: ID и XML: табличные данные

А файлик то все-таки закинул бы для интересу, для общего развития. Мало ли с чем в жизни придется столкнуться...
indd.zip - архив с двумя файлами: test.indd с куском справочника до экспорта, test_tagged.indd - тот же файл после экспорта, но без очистки тэгов, чтобы была видна разметка (в режиме ID CS "Show Structure")

xml_utf8.txt - результат работы скрипта - экспортированный кусок справочника в формате XML и кодировке UTF-8

Сам код, извини, постить не могу.
 

Вложения

  • xml_utf8.txt
    7.4 КБ · Просм.: 1 054
  • indd.zip
    85.3 КБ · Просм.: 310
Статус
Закрыто для дальнейших ответов.