DocBook 5-Dokumente gegen RELAXNG und Schematron validieren?

3

Ich schreibe ein DocBook 5-Dokument und möchte es vollständig für das RELAXNG- und das Schematron-Schema validieren.

Folgendes habe ich versucht:

  • Meines Wissens kann xmllint aus dem libxml2-Paket keine RELAXNG-Schemata mit eingebettetem Schematron verarbeiten, und das eigenständige Schema schematron ( docbook.sch) wird gemäß xmllint nicht erfolgreich kompiliert.
  • MSV scheint alles in Ordnung zu bringen, aber ich verwende nicht die relamesJAR (ich verwende 2013.6.1), also weiß ich nicht sicher, ob es das eingebettete Schematron macht oder nicht.
  • JNVDL schien auch zu funktionieren, obwohl es mir einen Validierungsfehler gab, der mir mitteilte, dass ich eine ID in meinem Dokument mehrfach verwendet habe, obwohl ich sie tatsächlich nur einmal verwendet habe.

Wie kann ich mein DocBook 5-Dokument vollständig gegen das RELAXNG- und das Schematron-Schema validieren?

Robert Winslow Dalpe
quelle
Ich habe Ihre Frage grundlegend umformuliert, um zu verhindern, dass sie als Off-Topic-Anfrage für eine Softwareempfehlung geschlossen wird. Es sollte jetzt zum Thema werden. Ich kenne die Antwort nicht, aber zumindest wird sie jetzt nicht geschlossen (sollte es nicht sein).
allquixotic

Antworten:

2

Es ist ein bisschen peinlich, dass ich das nicht früher bemerkt habe, aber ich habe etwas herausgefunden. Ich habe noch keine Überprüfungsmethode gefunden, die ein einzelnes RELAXNG-Schema mit eingebettetem Schematron korrekt verarbeitet, aber ich habe eine Möglichkeit gefunden, mein DocBook 5-Dokument korrekt zu überprüfen.

Es stellt sich heraus, dass DocBook 5.0 nicht den ISO-Standard von Schematron verwendet, sondern stattdessen Schematron 1.5. Aus diesem Grund scheiterten meine Versuche, die Schematron-Regeln mithilfe der ISO-Schematron-Ressourcen zu extrahieren und zu validieren. Die Verwendung der unter http://www.topologi.com/resources/schtrn_xsd_paper.html#Processing beschriebenen XSL-Skripte und -Methoden (stellen Sie sicher, dass Sie die veralteten Dateien RNG2Schtrn.xsl und XSD2Schtrn.xsl erhalten, die mit Schematron 1.5 funktionieren) war erfolgreich.

Das Wesentliche ist:

  1. Verwenden Sie eine XSL-Datei ( RNG2Schtrn.xsl), um die Schematron 1.5-Regeln aus dem RELAXNG-Schema zu extrahieren

  2. Verwenden Sie die Schematron 1.5-Validierungs-XSL-Dateien (zu schematron-basic.xslfinden unter http://xml.ascc.net/schematron/1.5/basic1-5/schematron-basic.html ), um eine Validierungs-XSL-Datei aus den Schematron-Regeln für das DocBook-Dokument zu erstellen.

  3. Verarbeiten Sie das DocBook-Dokument mit dem in Schritt 2 erstellten Validierungs-XSL und suchen Sie in der Ausgabe nach Fehlern.

  4. Verwenden Sie ein Tool, das RELAXNG-Schemata verarbeiten kann, um den Rest des DocBook-Dokuments zu überprüfen.

Robert Winslow Dalpe
quelle