В моем текущем проекте у нас есть большой репозиторий контента, который первоначально был опубликован в виде книги. Большая часть этого контента была опубликована как на английском, так и на многих иностранных языках, в основном с использованием Quark Express и более поздних версий InDesign. Этот контент был экспортирован в пользовательскую структуру XML для хранения и использования в будущем. Проблема заключается в том, что английский XML был экспортирован, а затем улучшен как по структуре, так и по метаданным со временем редакторами, которые оставили структуру XML на иностранном языке отличной от английской версии. Например:
Английский XML:
<chapter meta="meta data added">
<section meta="some meta about the section">
<paragraph>some english paragraph</paragraph>
<list>
<li>some english list item</li>
</list>
</section>
</chapter>
Иностранный XML:
<chapter>
<section>
<paragraph>some original foreign language paragraph</paragraph>
</section>
</chapter>
Как видите, иногда отсутствуют элементы , а также отсутствуют атрибуты . Проблема в том, что на данный момент мы хотим сравнить структуру иностранного языка с английской, добавить недостающие атрибуты и элементы метаданных, а затем сообщить о непереведенных частях XML.
Текущий процесс для завершения этого включает извлечение данных элемента и размещение их в веб-приложении. Оттуда я разрешаю пользователю входить и сопоставлять абзац иностранного языка с его английским аналогом (используя Jquery, чтобы они могли просто щелкнуть элемент, а затем сопоставить) и сохранять эти данные как атрибут (по уникальному идентификатору). На этом этапе я знаю, какие элементы совпадают между двумя языковыми документами, и затем я могу передать содержимое на иностранном языке в структурированный английский XML. Это оставляет меня с содержимым на иностранном языке (отмеченным uniqueID) внутри структурированного XML на английском языке, который я могу запрашивать для элементов без уникального идентификатора, чтобы я мог знать, какие элементы необходимо перевести.
Этот процесс работает нормально, однако он довольно ручной, требующий, чтобы кто-то пошел и вручную щелкнул по параграфам. Буквально через сотни тысяч страниц контента, я ищу способы дальнейшей автоматизации процесса. Существуют ли более эффективные способы сравнения XML-документов по структуре, чтобы вышеуказанные цели можно было выполнить с меньшим количеством ручного вмешательства?
Текущий процесс, среди прочего, использует C #, ASP.Net, Linq to XML и Jquery. Но язык и инструменты не имеют значения! Я просто хочу найти более автоматизированное решение. Если он использует БД, нет проблем. Если нам нужно сменить платформу, я не против. Это вопрос реализации, а не языка. Спасибо!