Unterstützung für Schematron-Dateien

„Schematron“ bezieht sich auf eine regelbasierte Validierungssprache, die zum Definieren von Tests für eine XML-Datei verwendet wird. Der Editor unterstützt Schematron-Dateien. Sie können die Schematron-Dateien importieren und auch im Editor bearbeiten. Mithilfe einer Schematron-Datei können Sie bestimmte Regeln definieren und diese dann für ein DITA-Thema oder eine Zuordnung validieren.

NOTE
Editor unterstützt ISO Schematron.

Schematron-Dateien importieren

Führen Sie die folgenden Schritte aus, um die Schematron-Dateien zu importieren:

  1. Navigieren Sie zum erforderlichen Ordner (in den Sie die Dateien hochladen möchten) in Repository.
  2. Wählen Sie das Symbol Optionen aus, um das Kontextmenü zu öffnen, und wählen Sie Assets hochladen.
  3. Im Dialogfeld Assets hochladen können Sie den Zielordner im Feld Asset-Ordner auswählen ändern.
  4. Wählen Sie Dateien auswählen und durchsuchen Sie die Schematron-Dateien, um sie auszuwählen. Sie können eine oder mehrere Schematron-Dateien auswählen und dann Hochladen auswählen.

Validieren eines DITA-Themas oder einer DITA-Zuordnung mit Schematron

Nach dem Import von Schematron-Dateien können Sie diese im Editor bearbeiten. Sie können die Schematron-Dateien verwenden, um die Themen oder eine DITA-Zuordnung zu validieren. Sie können beispielsweise die folgenden Regeln für eine DITA-Zuordnung oder ein Thema erstellen:

  • Ein Titel wird für eine DITA-Zuordnung definiert.
  • Eine kurze Beschreibung einer bestimmten Länge wurde hinzugefügt.
  • Es muss mindestens eine TopicRef in der Karte vorhanden sein.

Wenn Sie ein Thema im Editor öffnen, wird rechts ein Bedienfeld für die Schematronvalidierung angezeigt. Führen Sie die folgenden Schritte aus, um ein Thema oder eine Zuordnung mit einer Schematron-Datei hinzuzufügen und zu validieren:

{width="350"}

  1. Wählen Sie das Symbol Schematron aus, um das Bedienfeld Schematron zu öffnen.

  2. Verwenden Schematrondatei hinzufügen um Schematrondateien hinzuzufügen.

    note note
    NOTE
    Wenn eine ungültige Schematron-Datei hinzugefügt wird, wird im Validierungsfenster eine Fehlermeldung angezeigt.

    {width="350"}

  3. Wenn die Schematron-Datei keine Fehler enthält, wird sie hinzugefügt und im Validierungsfenster aufgeführt. Für die Schematron-Datei mit Fehlern wird eine Fehlermeldung angezeigt.

    note note
    NOTE
    Sie können das Kreuz-Symbol neben dem Namen der Schematron-Datei verwenden, um sie zu entfernen.
  4. Wählen Sie Validieren aus, um das Thema mit den hinzugefügten Schematron-Dateien zu validieren.

    • Wenn beim Thema keine Regeln verletzt werden, wird die Erfolgsmeldung für die Datei angezeigt.
    • Wenn das Thema eine Regel umgeht, z. B. wenn es keinen Titel enthält und für das oben angegebene Schematron validiert wurde, wird ein Validierungsfehler angezeigt.
    note note
    NOTE
    Validierungsergebnisse werden basierend auf dem in der Schematron-Datei definierten Rollenattribut angezeigt. Weitere Informationen finden Sie unter Validierungsergebnisse und Schweregrade.
  5. Wählen Sie die Fehlermeldung aus, um das Element mit dem Fehler im geöffneten Thema/in der geöffneten Zuordnung hervorzuheben.

Die Unterstützung von Schematronen im Editor hilft Ihnen bei der Validierung der Dateien anhand eines Regelsatzes und der Aufrechterhaltung der Konsistenz und Korrektheit über die Themen hinweg.

Validierungsergebnisse und Schweregrade

Validierungsergebnisse werden basierend auf dem in der Schematron-Datei definierten Rollenattribut angezeigt. Probleme werden als Fatal, Error, Warn oder Info kategorisiert, wobei im Validierungsbereich für jede Kategorie eine sichtbare Anzahl vorhanden ist.

{width="350"}

Um den Schweregrad eines Problems zu ermitteln, wird der Wert Groß-/Kleinschreibung wird beachtet des Rollenattributs ausgewertet, das in der entsprechenden Schematron-Datei definiert ist.

Der folgende Ausschnitt zeigt die unterstützten Rollenattributwerte, die in einer Schematronregel definiert sind:

  • <sch:assert role="error" test="@id">Element must have an ID.</sch:assert>
  • <sch:report role="info" test="not(@alt)">Image should have an alt attribute.</sch:report>
  • <sch:assert role= "fatal" test="b"> Bold must be there in <sch:name/> element</sch:assert>
  • <sch:assert role= "warn" test="b"> Recommended formatting is missing in <sch:name/> element</sch:assert>

Wenn das Rollenattribut nicht angegeben ist oder ein nicht unterstützter Wert verwendet wird, wird das Problem im Validierungsbereich als Error kategorisiert. Dieses Verhalten gilt auch für bestehende Schematron-Dateien, die kein Rollenattribut definieren. In solchen Fällen werden alle Probleme unter Error gruppiert.

Dateispeicherszenarien

Das Speichern einer Datei hängt von der Einstellung Validierungsprüfung vor dem Speichern der Datei ausführen in den Workspace-Einstellungen ab:

  • Wenn diese Option aktiviert ist, dürfen Sie die Datei erst speichern, wenn die Probleme auf Fatal- oder Error-Ebene behoben wurden.
  • Wenn diese Option deaktiviert ist, werden keine Validierungsprüfungen durchgeführt und die Dateien können gespeichert werden, selbst wenn Probleme auf Fatal- oder Error vorliegen.

Verwenden Sie Assert- und Report-Anweisungen, um auf Regeln zu prüfen schematron-assert-report

Experience Manager Guides unterstützt auch die Assert- und Report-Anweisungen in Schematron. Mithilfe dieser Anweisungen können Sie Ihre DITA-Themen überprüfen.

Bestätigung

Eine Assert-Anweisung erzeugt eine Meldung, wenn eine Testanweisung als „false“ ausgewertet wird. Wenn Ihr Titel beispielsweise fett formatiert sein soll, können Sie eine Assert-Anweisung dafür definieren.

<sch:rule context="title">
    <sch:assert test = "b"> Title should be bold </sch:assert>
  </sch:rule>

Wenn Sie Ihre DITA-Themen mit dem Schematron überprüfen, erhalten Sie eine Meldung für die Themen, bei denen der Titel nicht fett gedruckt ist.

Berichtsanweisung

Eine Berichtsanweisung erzeugt eine Meldung, wenn eine Testanweisung als „true“ ausgewertet wird. Wenn Sie beispielsweise möchten, dass die Kurzbeschreibung maximal 150 Zeichen lang ist, können Sie eine Berichtsanweisung definieren, um die Themen zu überprüfen, bei denen die Kurzbeschreibung mehr als 150 Zeichen lang ist.
Wenn Sie Ihre DITA-Themen mit dem Schematron überprüfen, erhalten Sie einen vollständigen Bericht der Regeln, in denen die Berichtsanweisung als „true“ ausgewertet wird. So erhalten Sie eine Nachricht für die Themen, bei denen die Kurzbeschreibung mehr als 150 Zeichen umfasst.

<sch:rule context="shortdesc">
        <sch:let name="characters" value="string-length(.)"/>
        <sch:report test="$characters &gt; 150">
        The short description has <sch:value-of select="$characters"/> characters. It should contain more than 150 characters.
        </sch:report>
    </sch:rule>
NOTE
Verwenden Sie beim Schreiben der Schematron-Regeln nur XPath 2.0-Ausdrücke.

Verwenden von Regex-Ausdrücken schematron-regex-espressions

Sie können auch Regex-Ausdrücke verwenden, um eine Regel mit matches()-Funktion zu definieren und dann eine Validierung mithilfe der Schematron-Datei durchzuführen.

Beispielsweise können Sie damit eine Meldung anzeigen, wenn der Titel nur ein Wort enthält.

<assert test="not(matches(.,'^\w+$'))">
No one word titles.
</assert>

Abstrakte Muster definieren schematron-abstract-patterns

Experience Manager Guides unterstützt auch abstrakte Muster in Schematron. Sie können generische abstrakte Muster definieren, um diese abstrakten Muster wiederzuverwenden. Sie können Platzhalterparameter erstellen, die das tatsächliche Muster angeben.

Die Verwendung abstrakter Muster kann Ihr Schematron-Schema vereinfachen, indem die Duplizierung von Regeln reduziert wird und die Verwaltung und Aktualisierung Ihrer Validierungslogik erleichtert wird. Dies kann auch Ihr Schema verständlicher machen, da Sie komplexe Validierungslogik in einem einzigen abstrakten Muster definieren können, das im gesamten Schema wiederverwendet werden kann.

Beispielsweise erstellt der folgende XML-Code ein abstraktes Muster und das eigentliche Muster verweist dann mithilfe der ID darauf.

<sch:pattern abstract="true" id="LimitNoOfWords">

<sch:rule context="$parentElement">

<sch:let name="words" value="string-length(.)"/>

<sch:assert test="$words &lt; $maxWords">

You have <sch:value-of select="$words"/> letters. This should be lesser than <sch:value-of select="$maxWords"/>.

</sch:assert>

<sch:assert test="$words &gt; $minWords">

You have <sch:value-of select="$words"/> letters. This should be greater than <sch:value-of select="$minWords"/>.

</sch:assert>

</sch:rule>

</sch:pattern>

<sch:pattern is-a="LimitNoOfWords" id="extend-LimitNoOfWords">

<sch:param name="parentElement" value="title"/>

<param name="minWords" value="1"/>

<param name="maxWords" value="8"/>

</sch:pattern>
recommendation-more-help
11125c99-e1a1-4369-b5d7-fb3098b9b178