1

Тема: Word и XML-схемы

Всем доброго времени. Передо мной встала интересная задача: автоматизация наполнения каталога товарами. Каталог собирается в программе для верстки inDesign. Эта программа умеет очень многое, но самое главное, она умеет работать с данными в формате XML. С большой частью задач я уже разобрался, но появилась одна серьезная проблема. Большинство информации о товарах хранится разрозненно в разных файлах. Это может быть excel, word, pdf или же на сайтах производителей. Для людей, занимающихся заполнением каталога (я не из их числа) самым разумным выбором стало перенести описание всех товаров в Word. Соответственно меня заинтересовал вопрос создание xml файла из программы Word. Для представления данных о товаре я написал простую (пока что xsd-схему). Вот и она:

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>


   <xs:element name="root">
      <xs:complexType>
         <xs:choice maxOccurs="unbounded">
         
            <xs:element name="item" minOccurs="1" maxOccurs="unbounded">
               <xs:complexType>
                  <xs:sequence>
                     
                     <xs:element name="item_id" type="xs:integer" minOccurs="1" maxOccurs="1" default="0"/>
            
                     <xs:element name="item_model" type="xs:normalizedString" minOccurs="1" maxOccurs="1" default="[Unknown model]"/>
                     
                     <xs:element name="item_name" type="xs:normalizedString" minOccurs="1" maxOccurs="1" default="[Unknown model]"/>
                     
                     <xs:element name="item_manufacturer_id" type="xs:normalizedString" minOccurs="1" maxOccurs="1" default="[Manufacturers ID]">
                     </xs:element>
                     
                     <xs:element name="item_description" type="xs:string" minOccurs="1" maxOccurs="1" default="[Please write a description]">
                     </xs:element>
                     
                     <xs:element name="item_technical_description" type="xs:string" minOccurs="1" maxOccurs="1" default="[Please write a technical description]">
                     </xs:element>
                     
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         
         </xs:choice>
      </xs:complexType>
   </xs:element>
 
   
</xs:schema>

Я добавил эту схему в ворд и добавил туда компоненты (поля ввода данных). Сохранение этого файла в формате xml даёт более-менее правильный результат. Но сам документ не очень удобен для редактирование. Как он выглядит показано в прикрепленном скриншоте.
Ну а теперь к сути. Возможно ли по этой xsd-схеме создать документ ворд, чтобы он напоминал форму для заполнения? Добавить туда описательную часть (например, "введите название модели товара" и далее поле для заполнения). Возможно ли добавить в такой документ проверку по restriction-условиям xsd схемы "на лету" и уведомления о некорректном вводе данных при редактирование документа в момент ввода? И наконец, можно ли добавить парсеры текста, которые смогут определить элементы форматирования (выделение жирным и т.д.), а также таблицы и создать на их месте специальные маркеры (чтобы inDesign смог понять, что это таблицы и т.д.).

Я понимаю, что мои вопросы достаточно размыты и, вероятнее всего, совершенно не просты и не получится воспользоваться одной кнопкой "сделать всё хорошо". И я не требую, да и не могу требовать, инструкции, как решить мою задачу. Но мне нужно понимать хотя бы направление, в котором нужно копать. Идти ли в сторону Visual Studio, или же с этим справляются макросы, либо же это можно сделать xslt-преобразованиями.

Всем кто дочитал до конца, большой респект. А кто еще и ответил, вообще респект-респект.