Какой набор инструментов рекомендуется использовать для форматирования XML DocBook? [закрыто]

https://docs.oracle.com/javase/8/docs/platform/serialization/spec/serialTOC.html

Сериализация по умолчанию несколько многословна и предполагает максимально возможный сценарий использования сериализованного объекта, и, соответственно, формат по умолчанию (Serializable) аннотирует результирующий поток с информацией о классе сериализованного объекта.

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

Дополнительно (как указано Uri) экстернализация также обеспечивает полный контроль над кодированием данных в потоке, соответствующем типам Java. Для (надуманного) примера вы можете записать логическое значение true, как «Y», а false - «N». Вы можете сделать это вовне.

23
задан Community 23 May 2017 в 10:29
поделиться

11 ответов

Я делал некоторые ручные записи с DocBook, под cygwin, для создания HTML на Одну страницу, Многого HTML Страниц, CHM и PDF.

я установил следующее:

  1. таблицы стилей DocBook (xsl) репозиторий.
  2. xmllint, чтобы протестировать, если xml корректен.
  3. xsltproc, для обработки xml с таблицами стилей.
  4. щеголь Apache , для создания PDF. Я удостоверяюсь, что добавил установленную папку к ПУТИ.
  5. Microsoft Семинар Справки HTML , для создания CHM. Я удостоверяюсь, что добавил установленную папку к ПУТИ.

Редактирование : В ниже кода я использую больше, чем эти 2 файла. Если кто-то хочет очищенную версию сценариев и структуры папок, свяжитесь со мной: guscarreno (волнистый/в) googlemail (период/точка) com

я тогда использую configure.in:

AC_INIT(Makefile.in)

FOP=fop.sh
HHC=hhc
XSLTPROC=xsltproc

AC_ARG_WITH(fop, [  --with-fop  Where to find Apache FOP],
[
    if test "x$withval" != "xno"; then
        FOP="$withval"
    fi
]
)
AC_PATH_PROG(FOP,  $FOP)

AC_ARG_WITH(hhc, [  --with-hhc  Where to find Microsoft Help Compiler],
[
    if test "x$withval" != "xno"; then
        HHC="$withval"
    fi
]
)
AC_PATH_PROG(HHC,  $HHC)

AC_ARG_WITH(xsltproc, [  --with-xsltproc  Where to find xsltproc],
[
    if test "x$withval" != "xno"; then
        XSLTPROC="$withval"
    fi
]
)
AC_PATH_PROG(XSLTPROC,  $XSLTPROC)

AC_SUBST(FOP)
AC_SUBST(HHC)
AC_SUBST(XSLTPROC)

HERE=`pwd`
AC_SUBST(HERE)
AC_OUTPUT(Makefile)

cat > config.nice <<EOT
#!/bin/sh
./configure \
    --with-fop='$FOP' \
    --with-hhc='$HHC' \
    --with-xsltproc='$XSLTPROC' \

EOT
chmod +x config.nice

и Makefile.in:

FOP=@FOP@
HHC=@HHC@
XSLTPROC=@XSLTPROC@
HERE=@HERE@

# Subdirs that contain docs
DOCS=appendixes chapters reference 

XML_CATALOG_FILES=./build/docbook-xsl-1.71.0/catalog.xml
export XML_CATALOG_FILES

all:    entities.ent manual.xml html

clean:
@echo -e "\n=== Cleaning\n"
@-rm -f html/*.html html/HTML.manifest pdf/* chm/*.html chm/*.hhp chm/*.hhc chm/*.chm entities.ent .ent
@echo -e "Done.\n"

dist-clean:
@echo -e "\n=== Restoring defaults\n"
@-rm -rf .ent autom4te.cache config.* configure Makefile html/*.html html/HTML.manifest pdf/* chm/*.html chm/*.hhp chm/*.hhc chm/*.chm build/docbook-xsl-1.71.0
@echo -e "Done.\n"

entities.ent: ./build/mkentities.sh $(DOCS)
@echo -e "\n=== Creating entities\n"
@./build/mkentities.sh $(DOCS) > .ent
@if [ ! -f entities.ent ] || [ ! cmp entities.ent .ent ]; then mv .ent entities.ent ; fi
@echo -e "Done.\n"

# Build the docs in chm format

chm:    chm/htmlhelp.hpp
@echo -e "\n=== Creating CHM\n"
@echo logo.png >> chm/htmlhelp.hhp
@echo arrow.gif >> chm/htmlhelp.hhp
@-cd chm && "$(HHC)" htmlhelp.hhp
@echo -e "Done.\n"

chm/htmlhelp.hpp: entities.ent build/docbook-xsl manual.xml build/chm.xsl
@echo -e "\n=== Creating input for CHM\n"
@"$(XSLTPROC)" --output ./chm/index.html ./build/chm.xsl manual.xml

# Build the docs in HTML format

html: html/index.html

html/index.html: entities.ent build/docbook-xsl manual.xml build/html.xsl
@echo -e "\n=== Creating HTML\n"
@"$(XSLTPROC)" --output ./html/index.html ./build/html.xsl manual.xml
@echo -e "Done.\n"

# Build the docs in PDF format

pdf:    pdf/manual.fo
@echo -e "\n=== Creating PDF\n"
@"$(FOP)" ./pdf/manual.fo ./pdf/manual.pdf
@echo -e "Done.\n"

pdf/manual.fo: entities.ent build/docbook-xsl manual.xml build/pdf.xsl
@echo -e "\n=== Creating input for PDF\n"
@"$(XSLTPROC)" --output ./pdf/manual.fo ./build/pdf.xsl manual.xml

check: manual.xml
@echo -e "\n=== Checking correctness of manual\n"
@xmllint --valid --noout --postvalid manual.xml
@echo -e "Done.\n"

# need to touch the dir because the timestamp in the tarball
# is older than that of the tarball :)
build/docbook-xsl: build/docbook-xsl-1.71.0.tar.gz
@echo -e "\n=== Un-taring docbook-xsl\n"
@cd build && tar xzf docbook-xsl-1.71.0.tar.gz && touch docbook-xsl-1.71.0

для автоматизации производства вышеупомянутых выводов файла.

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

14
ответ дан jamesallman 23 May 2017 в 10:29
поделиться

Популярным подходом является использование DocBook XSL Stylesheets .

3
ответ дан Jim 23 May 2017 в 10:29
поделиться

Я использовал два утилиты CLI для упрощения моей цепочки инструментов docbook: xmlto и publican.

Publican выглядит элегантно для меня, но достаточно подходит для Fedora & amp; Редхат нуждается в публикации.

3
ответ дан Ismael Olea 23 May 2017 в 10:29
поделиться

С помощью FOP вы получаете функции, которые кто-то решил, что они хотят реализовать достаточно плохо. Я бы сказал, что никто, кто серьезно относится к публикации, не использует его в производстве. Вам гораздо лучше с RenderX или Antenna House или Arbortext . (Я использовал их все за последние 10 лет реализации проектов.) Это зависит от ваших бизнес-требований, от того, сколько вы хотите автоматизировать, и от того, на что похожи навыки, время и ресурсы вашей команды. Это не просто вопрос технологии.

3
ответ дан Liz Fraley 23 May 2017 в 10:29
поделиться

Я предпочитаю использовать Windows для создания контента (редактор Notepad ++). Publican в Linux - это хорошая цепочка инструментов для создания хорошей структуры документации и вывода результатов процесса. Я использую Dropbox (есть и другие службы обмена документами, которые должны хорошо работать на обеих платформах) на моей машине с Windows, а также на машине с Virtual Linux. С помощью этой настройки я смог получить комбинацию, которая прекрасно работает для меня. Когда работа по редактированию завершена в Windows (которая сразу синхронизируется с машиной Linux), я переключаюсь на Linux, чтобы запустить сборку publican и создавать выходные данные HTML и PDF, которые снова обновляются в моей папке Windows с помощью Dropbox.

1
ответ дан Ajay 23 May 2017 в 10:29
поделиться

Мы используем

  • Serna XML Editor
  • Eclipse (обычное редактирование XML, в основном используется техническими специалистами)
  • собственные специфические Плагин Eclipse (только для заметок о выпуске)
  • Плагин Maven docbkx
  • Баночка Maven со специальной таблицей стилей, основанная на стандартных таблицах стилей docbook
  • Плагин Maven для преобразования csv в таблицу DocBook
  • Плагин Maven для извлечения данных BugZilla и создания из него раздела DocBook
  • Hudson (для создания PDF-документов) [] 1111]
  • Nexus для развертывания созданных документов PDF

У нас есть несколько идей:

Развертывание с каждой версией продукта не только PDF, но и оригинального полного документа DocBook ( так как мы частично пишем документ и частично генерируем их). Сохранение полного документа DocBook делает их независимыми для изменений в настройках системы в будущем. Это означает, что если система изменится, из которой контент был извлечен (или заменен другими системами), мы больше не сможем генерировать точный контент. Что может вызвать проблему, если нам потребуется переиздать (с другой таблицей стилей) весь набор руководств по продукту. Так же, как с банками; эти скомпилированные Java-классы также размещаются в Nexus (вы не хотите хранить их в своем SCM); это мы также сделаем с сгенерированным документом DocBook.

Обновление:

Fresh создала подключаемый модуль Maven HTML Cleaner , который позволяет добавлять содержимое DocBook на сайт проекта Maven (доступна бета-версия). Обратная связь приветствуется через форум открытого обсуждения .

7
ответ дан Kariem 23 May 2017 в 10:29
поделиться

Относительно вопроса о ЩЕГОЛЕ Apache: когда мы установили наш набор инструментальных средств (подобный тому, что Gustavo предложил), у нас были очень хорошие результаты с помощью механизм RenderX XEP . XEPs производят полируемые взгляды, и насколько я вспоминаю, у ЩЕГОЛЯ были некоторые проблемы с таблицами (это было несколько лет назад, хотя, это, возможно, изменилось).

3
ответ дан Palmin 23 May 2017 в 10:29
поделиться

Таблицы стилей DocBook, плюс ЩЕГОЛЬ, работают хорошо, но я наконец решил кинуться за RenderX, который покрывает стандарт более тщательно и имеет некоторые хорошие расширения, которые используют в своих интересах таблицы стилей DocBook.

книга Bob Stayton, DocBook XSL: полное руководство , описывает несколько альтернативных наборов инструментальных средств, включая, которые работают над Linux или Windows (почти, конечно, MacOS также, хотя я лично не использовал Mac).

4
ответ дан Dick 23 May 2017 в 10:29
поделиться

Для вывода HTML я использую таблицы стилей XSL Docbook с процессором XSLT xsltproc.

Для вывода PDF я использую dblatex , который переводится в LaTeX, а затем используется pdflatex для компиляции в PDF. (Раньше я использовал Jade, таблицы стилей DSSSL и jadetex.)

7
ответ дан 29 November 2019 в 01:12
поделиться

Мы используем XMLmind XmlEdit для редактирования и плагин Maven docbkx для создания вывода во время наших сборок. Для набора хороших шаблонов обратите внимание на те, которые предоставляют Hibernate или Spring .

7
ответ дан 29 November 2019 в 01:12
поделиться

Если вы используете Red Hat, Ubuntu или Windows, вы можете взглянуть на Publican, который, как предполагается, представляет собой довольно полный набор инструментов командной строки. Red Hat широко его использует.

3
ответ дан 29 November 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: