Конвертер XMLmind DITA выводит неправильный HTML - PullRequest
1 голос
/ 06 июня 2019

В настоящее время я тестирую инструмент для конвертации 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?

Любая помощь будетбыть оцененным.

...