В настоящее время я тестирую инструмент для конвертации DITA (https://www.xmlmind.com/ditac/).. Тест, который я выполняю, заключается в том, чтобы преобразовать простой XML-файл темы DITA в документ HTML (из кода Java).В настоящее время я использую пример, представленный на их веб-сайте (https://www.xmlmind.com/ditac/_distrib/doc/manual/embed/Embed2.java). Тема для конвертации в DITA выглядит следующим образом:
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
<topic id="docbook_or_dita">
<title>DITA or DocBook?</title>
<shortdesc>Both DITA and DocBook are both mature, feature rich, document types,
so which one to choose?</shortdesc>
<body>
<p>DocBook 5 is a mature document type...</p>
<p>DITA concepts (topics, maps, specialization, etc)...</p>
</body>
<related-links>
<link format="html" href="http://www.docbook.org/" scope="external">
<linktext>DocBook 5</linktext>
</link>
<link format="html"
href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita"
scope="external">
<linktext>DITA</linktext>
</link>
</related-links>
</topic>
Результаты удовлетворительные, и я получаю следующую HTML-страницу:
<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta><title>DITA or DocBook?</title><link rel="stylesheet" type="text/css" href="res/basic.css"></link><meta name="description" content="Both DITA and DocBook are both mature, feature rich, document types, so which one to choose?"></meta>
<meta name="generator" content="XMLmind DITA Converter 3.5.0"></meta>
</head>
<body>
<div id="docbook_or_dita" class="topic">
<h2 class="section1-title">DITA or DocBook?</h2>
<p class="shortdesc">Both DITA and DocBook are both mature, feature rich, document types,
so which one to choose?
</p>
<div class="body">
<div class="p">DocBook 5 is a mature document type...</div>
<div class="p">DITA concepts (topics, maps, specialization, etc)...</div>
</div>
<div class="related-links">
<h3 class="related-links-title">Related information</h3>
<p class="link">‣ <a href="http://www.docbook.org/" target="_blank">DocBook 5</a></p>
<p class="link">‣ <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita" target="_blank">DITA</a></p>
</div>
</div>
</body>
</html>
Однако проблема возникает, когда я изменяю исходный файл DITA для использования XML-схемы W3C вместо DTD (с помощью средства DTDToSchema -> https://www.xmlmind.com/ditac/_distrib/doc/manual/dita_support.html). При использовании XML-схемы W3C тема DITA выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<topic xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:oasis:names:tc:dita:xsd:topic.xsd" id="docbook_or_dita">
<title>DITA or DocBook?</title>
<shortdesc>Both DITA and DocBook are both mature, feature rich, document types,
so which one to choose?</shortdesc>
<body>
<p>DocBook 5 is a mature document type...</p>
<p>DITA concepts (topics, maps, specialization, etc)...</p>
</body>
<related-links>
<link format="html" href="http://www.docbook.org/" scope="external">
<linktext>DocBook 5</linktext>
</link>
<link format="html"
href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita"
scope="external">
<linktext>DITA</linktext>
</link>
</related-links>
</topic>
При попытке преобразовать его в HTML с помощью Embed2.java
я получаю несколько ошибок, таких как:
java.lang.IllegalArgumentException: unexpected "topic" element
(исправлено добавлением class="- topic/topic "
к topic
корневой элемент - и
missing "ditaarch:DITAArchVersion" attribute
(исправлено добавлением xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/" ditaarch:DITAArchVersion="1.3"
снова к корневому элементу topic
).
После исправления предыдущих ошибок выполняется преобразованиебез ошибок. Однако итоговая HTML-страница не содержитn Теги HTML внутри тела:
<!DOCTYPE html
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta><title></title><link rel="stylesheet" type="text/css" href="res/basic.css"></link><meta name="generator" content="XMLmind DITA Converter 3.5.0"></meta>
</head>
<body>
<div id="docbook_or_dita" class="topic">
DITA or DocBook?
Both DITA and DocBook are both mature, feature rich, document types,
so which one to choose?
DocBook 5 is a mature document type...
DITA concepts (topics, maps, specialization, etc)...
DocBook 5
DITA
</div>
</body>
</html>
Любые идеи о том, как сгенерировать HTML из темы DITA (с использованием подхода Java), которая не ссылается на DTD?
Любая помощь будетбыть оцененным.