Validando DocBook 5 documentos contra RELAXNG e Schematron?

3

Estou escrevendo um documento DocBook 5 e gostaria de validá-lo totalmente contra os esquemas RELAXNG e Schematron.

Aqui está o que eu tentei:

  • Em meu conhecimento, o xmllint do pacote libxml2 não manipulará esquemas RELAXNG com o Schematron embutido, e o esquema schematron autônomo ( docbook.sch ) não será compilado com sucesso de acordo com o xmllint.
  • MSV parece lidar com tudo OK, mas eu não estou usando o relames JAR (estou usando 2013.6.1), então eu não sei ao certo se está fazendo o Schematron embutido ou não.
  • O
  • JNVDL também pareceu funcionar, embora tenha me dado um erro de validação dizendo que eu estava usando um ID várias vezes no meu documento, quando na verdade só o usava uma vez.

Como posso validar totalmente o documento DocBook 5 contra os esquemas RELAXNG e Schematron?

    
por Robert Winslow Dalpe 15.04.2014 / 14:55

1 resposta

2

Isso é um pouco embaraçoso porque não percebi isso antes, mas percebi algo. Ainda não encontrei um método de validação que manipule corretamente um único esquema RELAXNG com o Schematron incorporado, mas descobri uma maneira de validar corretamente o documento DocBook 5.

Acontece que o DocBook 5.0 não usa o padrão ISO do Schematron, mas usa o Schematron 1.5. Por causa disso, minhas tentativas de extrair e validar as regras do Schematron usando os recursos do Esquema do ISO estavam falhando. Usando os scripts e o método XSL descritos no link (não se esqueça de obter os arquivos obsoletos RNG2Schtrn.xsl e XSD2Schtrn .xsl, que funciona com o Schematron 1.5) foi bem sucedido.

A essência é:

  1. Use um arquivo XSL ( RNG2Schtrn.xsl ) para extrair as regras do Schematron 1.5 do esquema RELAXNG

  2. Use os arquivos XSL de validação do Schematron 1.5 ( schematron-basic.xsl encontrado no link ) para criar um arquivo XSL de validação a partir das regras do Schematron para o documento DocBook.

  3. Processe o documento DocBook usando a validação XSL criada na etapa 2 e procure por erros na saída.

  4. Use uma ferramenta que possa manipular esquemas RELAXNG para validar o restante do documento DocBook.

por 16.04.2014 / 17:25