DocBook 5-Dokumente sowohl gegen RELAXNG als auch gegen Schematron validieren?

687
Robert Winslow Dalpe

Ich schreibe ein DocBook 5-Dokument und möchte es vollständig gegen die RELAXNG- und Schematron-Schemata validieren.

Folgendes habe ich ausprobiert:

  • Meines Wissens kann xmllint aus dem libxml2-Paket keine RELAXNG-Schemas mit eingebettetem Schematron verarbeiten, und das Standalone-Schema ( docbook.sch) ("schematron" ) wird nicht erfolgreich gemäß xmllint kompiliert.
  • MSV scheint alles gut zu beherrschen, aber ich verwende den relamesJAR nicht (ich verwende 2013.6.1), daher weiß ich nicht genau, ob er das eingebettete Schematron verwendet oder nicht.
  • JNVDL schien auch zu funktionieren, obwohl es einen Validierungsfehler gab, der besagte, dass ich in meinem Dokument mehrmals eine ID verwendete, obwohl ich sie tatsächlich nur einmal verwendete.

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

3
Ich habe Ihre Frage grundlegend umformuliert, um sie vor einer Nicht-Ausschaltung als Anforderung einer Softwareempfehlung zu schützen. Es sollte jetzt ein Thema sein. Ich kenne die Antwort nicht, aber zumindest wird sie jetzt nicht geschlossen. Horn OK Please vor 10 Jahren 0

1 Antwort auf die Frage

2
Robert Winslow Dalpe

Dies ist etwas peinlich, dass ich das nicht früher bemerkt habe, aber ich habe etwas herausgefunden. Ich habe immer noch keine Validierungsmethode gefunden, die ein einzelnes RELAXNG-Schema mit eingebettetem Schematron korrekt verarbeitet, aber ich habe einen Weg gefunden, mein DocBook 5-Dokument korrekt zu validieren.

Es stellt sich heraus, dass DocBook 5.0 nicht den ISO-Standard von Schematron verwendet, sondern 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-Skripts und -Methode (unbedingt die veralteten Dateien RNG2Schtrn.xsl und XSD2Schtrn.xsl, die mit Schematron 1.5 arbeiten) waren erfolgreich.

Der Kern 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 XSL-Dateien für die Schematron 1.5-Validierung ( schematron-basic.xslunter 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 der in Schritt 2 erstellten Validierungs-XSL und suchen Sie nach Fehlern in der Ausgabe.

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