Anwendbarkeit bei der Publizierung
Übersicht
XML-Themen können logische Ausdrücke enthalten, um zu bestimmen, ob der Inhalt auf Elementebene eingeschlossen werden soll. Die Markierung, die die Optionen und die Wahlmöglichkeiten definiert, die für einige Inhalte gelten, wird als Inline-Anwendbarkeit bezeichnet. Ob Inhalte ein- oder ausgeschlossen werden, hängt von der Bewertung dieses logischen Ausdrucks anhand der Auswahlmöglichkeiten ab, die bei der Publizierung durch den Anwendbarkeitsfilter (oder den Parameter rootApplicabilityExpression, wenn dieser in einer Publizierregel festgelegt wurde) ausgewählt wurden.
Ein Anwendbarkeitsausdruck stellt eine Untermenge von Optionen und Auswahlmöglichkeiten eines Produkts dar, die verwendet wird, um den Inhalt zu kommentieren. Der Ausdruck ordnet den Inhalt einem bestimmten Produkt oder bestimmten Produkten zu, und er kann dann verwendet werden, um ihn zu filtern. Einfache Ausdrücke können mit logischen Operatoren kombiniert werden.
In der Servicestruktur-Benutzeroberfläche können Sie die Filterung nach Servicestruktur und Inline-Anwendbarkeit für dynamische Dokumente mit dem Aktionssatz Filter auf der Symbolleiste der Registerkarte Struktur festlegen. Bei der Publizierung wird der Optionsfilter auf die Publikationsstruktur und deren dynamische Dokumente angewendet. Wird der Publizierregelparameter rootApplicabilityExpression festgelegt, überschreibt er den Filterausdruck, der unter Verwendung des Aktionssatzes Filter definiert wurde.
Der Inline-Anwendbarkeitsfilter wird nur für PDF und XSL-Ausgabetypen unterstützt. Bei Paketausgaben wird während der Publizierung kein Filter angewendet, da der Filter von einem Arbortext Content Delivery Benutzer angewendet wird.
Anwendbarkeitsausdrücke erfordern einen Parser, der die Options- und Auswahlmöglichkeitsausdrücke entschlüsseln kann. Diese werden mit Überschneidungs- und Trennoperatoren wie AND, OR und NOT angegeben.
APEX
Windchill verwendet die ATO-Syntax, um Anwendbarkeitsausdrücke darzustellen. Wenn ein Bündel publiziert wird, werden Anwendbarkeitsausdrücke abhängig von der Publizierregel im APEX-Format publiziert, das von Arbortext Content Delivery verwendet werden kann. Weitere Informationen zu Publizierregeln finden Sie im Abschnitt "Anwendbarkeitsausdrücke in Paketen".
APEX ist eine Syntax, die auf der LISP-Programmiersprache basiert. Der Wert der Eigenschaft LogicalExpression ist der APEX-Anwendbarkeitsausdruck, der auf ein Windchill Objekt angewendet wird. Diese Eigenschaft steht in einem veröffentlichten Bündel in den Dateien DMPmap.xml und hierarchy.xml für eine Servicestruktur bzw. eine Service-Produkthierarchie zur Verfügung.
Verwenden Sie die folgende Tabelle, um die Grammatik von APEX-Ausdrücken besser zu verstehen.
APEX-Grammatiksymbol
APEX-Ausdrucksgrammatik
expression
"(" expression-body ")" | constant
expression-body
polyadic-body | choice-body | function-body
polyadic-body
polyadic-op s expression expression-list
choice-body
"IS" s quote string-list
function-body
name string-list
expression-list
empty | s expression s expression-list
string-list
empty | s quote s string-list
S
" " | " " s
polyadic-op
"AND" | "OR" | "NOT"
constant
"TRUE" | "FALSE" | "UNKNOWN"
quote
' string '
Beispiele
* 
Sie müssen einen zugewiesenen Ausdruck in einer Klammer definieren, da der durch + gekennzeichnete AND-Operator Vorrang vor dem OR-Operator hat, der durch / gekennzeichnet wird.
Beispiel 1:
Einem Objekt in Windchill wird ein Ausdruck zugewiesen, in dem die Option "Tire" den Wert "155" oder "145" und die Option "Colour" den Wert "Black" oder "Red" hat. Das ATO-Format ist:
("155"/"145") + (Black/Red)
Das entsprechende APEX-Format ist:
(AND (IS 'Tire' '155' '145') (IS 'Colour' 'Black' 'Red')
Beispiel 2:
Einem Objekt in Windchill wird ein Ausdruck zugewiesen, in dem die Option "Version" den Wert "X-24" oder "X-26" hat. Für Version X-24 kann die Option "Maintenance" den Wert "M022" oder "M023" haben. Dann ist das ATO-Format:
(“X-24” + (“M022”/”M023”) ) / ”X-26”
Das entsprechende APEX-Format ist:
(OR (AND (IS 'release' 'X-24') (IS 'maintenance' 'M022' 'M023')) (IS 'release' 'X-26'))
Beispiel 3:
Einem Windchill Objekt wird ein Ausdruck mit folgender Dienstgültigkeit zugewiesen:
Der Option "Family" wird "X96" mit Modell "K95" oder "K96" als Kontext als zugewiesen. Der Dienstgültigkeitstyp ist die Seriennummer im Bereich zwischen 12000 und 13000. Das APEX-Format für den oben genannten Ausdruck und die Dienstgültigkeit ist:
(AND (IS 'family' 'X96') (IS 'model' 'K95' 'K96') (IS 'serialNo' '12000' '13000'))
Formatvorlagen einrichten
Wenn Inline-Anwendbarkeitsausdrücke im Servicestruktur-Stammdokument Identifier.xml an die Payload gesendet werden sollen, müssen Sie die Formatvorlage pubstructXsl so ändern, dass sie Anwendbarkeitsausdrücke aus der Identifier.xml an den korrekten Speicherort in Ihrer Ausgabe-DITA-Map kopiert (wie die Elemente topicref und topic).
Publizierregeln einrichten
Wenn Sie Publizierregeln für die PDF- und XSL-Ausgabe erstellen, sollten Sie festlegen, welche Publizierregelparameter während der Publizierung auf dem Arbortext Publishing Engine Server angewendet werden sollen. Sie können die grundlegenden Publizierregelparameter für die Anwendbarkeit verwenden, um sie sowohl auf Strukturen als auch auf Inline-Inhalte in dynamischen Dokumenten anzuwenden. Den folgenden Elementen wird com.ptc.arbortext.pe/ vorangestellt:
applicabilitySyntax
Geben Sie den Namen der Anwendbarkeitssyntax für Anwendbarkeitsausdrücke in der Payload an. Geben Sie den Namen, der auf dem Arbortext Publishing Engine Server registriert wurde, mit der Zugriffslistenmethode applic::registerSyntax() an. Es gibt keinen Standardwert.
Wenn ein Paket für die Verwendung mit Arbortext Content Delivery publiziert wird und beide Strukturen und ihre Themen ATO und dieselbe Quellsyntax verwenden, ist applicabilitySyntax der einzige für die Publizierung von Paketen erforderliche Parameter.
rootApplicabilityExpression
Geben Sie einen Anwendbarkeitsausdruck an, der während der Publizierung auf die gesamte Servicestruktur und ihren Inhalt angewendet werden soll. Die Ausdruckssyntax muss mit der Syntax in der Servicestruktur und in ihrem XML-Textinhalt übereinstimmen.
Die Inline-Anwendbarkeit für dynamische Dokumente wird mit disableInlineApplicFiltering aktiviert oder deaktiviert. Geben Sie true (Standard) an, um die Inline-Anwendbarkeit zu deaktivieren, oder geben Sie false an, um sie zu aktivieren.
Weitere Informationen zu Publizierregelparametern finden Sie unter Service-Worker-Parameter.
Syntax-Parser implementieren
Die Anwendbarkeitssyntax kann ein einfaches Format aufweisen (unter Verwendung der Beschriftungen des Optionssatzes). Dabei wird davon ausgegangen, dass die Beschriftungen eindeutige Auswahlmöglichkeitsnamen sind. Anwendbarkeitsausdrücke verwenden Operatoren, um Auswahlmöglichkeiten zu kombinieren oder zu verwerfen. Ein Parser ist erforderlich, um den Ausdruck mithilfe einer registrierten Syntax auszuwerten.
Um einen neuen Syntax-Parser zu implementieren, müssen Sie die folgenden Java-Pakete verwenden, die sich auf dem Arbortext Publishing Engine Server unter lib\classes\applicability.jar befinden:
com.ptc.arbortext.applicability.expression
Ein Java-Paket mit Schnittstellen zur Unterstützung von Anwendbarkeitsausdruck-Objekten für das Filtern von Inhalt mit Options- und Auswahlmöglichkeitsdaten. Optionselemente haben einen Namen, eine Beschreibung und einen Satz von Auswahlmöglichkeitselementen. Die Options- und Auswahlmöglichkeitselemente weisen ein Beschriftungsattribut auf, das in der Benutzeroberfläche und in den Anwendbarkeitsausdrücken verwendet wird. Die Beschriftungen müssen innerhalb jedes Optionssatzes eindeutig sein.
com.ptc.arbortext.applicability.representation
Ein Java-Paket mit Schnittstellen zur Unterstützung des Anwendbarkeits-Markup für Elemente, Attribute, Inhalt und Verarbeitungsanweisungen.
In der Payload sind die Optionen und Auswahlmöglichkeiten in der Datei OptionsDefinition.xml enthalten.
Anwendbarkeitssyntax registrieren
Sie müssen Ihre Anwendbarkeitssyntax auf dem Arbortext Publishing Engine Server mithilfe einer Zugriffslistenfunktion registrieren, bevor sie bei der Publizierung verwendet werden kann. Verwenden Sie die folgende Registrierungsfunktion:
applic::registerSyntax(NAME, TEST_XPATH, EXPR_XPATH, PARSER_CLASS)
NAME ist der Name der Anwendbarkeitssyntax.
TEST_XPATH ist ein boolescher XPath-Ausdruck, um zu prüfen, ob ein Anwendbarkeitsausdruck für ein Element vorhanden ist.
EXPR_XPATH ist ein XPath-Ausdruck, der die Anwendbarkeit für ein bestimmtes Element abruft.
PARSER_CLASS ist der Klassenname des Parsers für die Anwendbarkeitssyntax.
Ein ATO-Parser ist standardmäßig auf dem Server verfügbar und wie folgt registriert (ignorieren Sie die Zeilenumbrüche):
applic::registerSyntax("ATO", "boolean(@*[namespace-uri() =
'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic'])",
"@*[namespace-uri() = 'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic']",
"com.ptc.arbortext.applicability.representation.ATOParser")
Anwendbarkeitsausdrücke in Paketen
Während der Paketpublizierung werden keine Anwendbarkeitsfilter verwendet. Stattdessen werden Anwendbarkeitsausdrücke in ein Format konvertiert, das in Arbortext Content Delivery angewendet werden kann.
Die Publikationsstruktur-Anwendbarkeit befindet sich in der Metadateneigenschaft LogicalExpression. Die Anwendbarkeit von Themen wird in das Attribut {http://arbortext.ptc.com/namespace/ATO}applic kopiert und dann konvertiert.
Die folgenden Inline-Anwendbarkeitsparameter gelten für die Strukturen, die in Paketen publiziert werden:
com.ptc.arbortext.pe.service/structureSourceApplicSyntax
Geben Sie den Namen der Anwendbarkeitssyntax für Anwendbarkeitsausdrücke in der Servicestruktur an. Geben Sie den Namen an, der von applic::registerSyntax auf dem Arbortext Publishing Engine Server registriert wurde. Wenn er nicht angegeben wird, wird der Wert applicabilitySyntax verwendet. Wenn applicabilitySyntax nicht angegeben wird, ist die Standardeinstellung ATO.
com.ptc.arbortext.pe.service/structureTargetApplicSyntax
Geben Sie den Namen der Anwendbarkeitssyntax für Anwendbarkeitsausdrücke an, nachdem das Service-Untersystem die Verarbeitung abgeschlossen hat. Geben Sie den Namen an, der von applic::registerSyntax auf dem Arbortext Publishing Engine Server registriert wurde. Wenn er nicht angegeben wird, wird der Wert applicabilitySyntax verwendet. Wenn applicabilitySyntax nicht angegeben wird, ist die Standardeinstellung ATO.
disableStructureApplicabilityConverter
Geben Sie an, ob Anwendbarkeitsausdrücke in einer Struktur gesucht und konvertiert werden sollen. Geben Sie false (Standardeinstellung für Pakete) an, um dies zu aktivieren. Geben Sie true für die Deaktivierung an. Standardmäßig wird dies für PDFs deaktiviert.
Die folgenden Inline-Anwendbarkeitsparameter gelten für die Themen, die in Paketen publiziert werden:
com.ptc.arbortext.pe.service/topicCcfParam.sourceApplicabilitySyntax
Geben Sie den Namen der Anwendbarkeitssyntax für Anwendbarkeitsausdrücke in Themen im Paket an. Geben Sie den Namen an, der auf dem Arbortext Publishing Engine Server registriert ist. Wenn er nicht angegeben wird, wird der Wert applicabilitySyntax verwendet. Wenn applicabilitySyntax nicht angegeben wird, ist die Standardeinstellung ATO.
com.ptc.arbortext.pe.service/topicCcfParam.targetApplicabilitySyntax
Geben Sie den Namen der Anwendbarkeitssyntax für Anwendbarkeitsausdrücke in Themen an, nachdem das Service-Untersystem die Verarbeitung abgeschlossen hat. Geben Sie den Namen an, der auf dem Arbortext Publishing Engine Server registriert ist. Wenn er nicht angegeben wird, wird der Wert applicabilitySyntax verwendet. Wenn applicabilitySyntax nicht angegeben wird, ist die Standardeinstellung APEX.
com.ptc.arbortext.pe.service/topicCcfParam.disableApplicabilityConverter
Geben Sie an, ob Anwendbarkeitsausdrücke in einem Thema gesucht und konvertiert werden sollen. Geben Sie false (Standardeinstellung) an, um dies zu aktivieren. Geben Sie true für die Deaktivierung an.
Anlegen von Profilen für Anwendbarkeitsausdrücke
Informationselemente können über Profile verfügen, die bei der Erstellung angewendet wurden. Das Profil-Markup kann mit einer Anwendbarkeitssyntax in einen Anwendbarkeitsausdruck konvertiert werden. Die Profilkonvertierung wird durch den booleschen Publizierparameter com.ptc.arbortext.pe.service/topicCcfParam.disableProfilingConverter gesteuert.
Beispielsweise kann ein XML-Dokument das folgende Markup enthalten. os und userlevel geben die Profilerstellung an:
<chapter os="Windows Vista;Unix" userlevel="Novice">
Eine Publizieranfrage, die die APEX-Syntax als Anwendbarkeitsausdruck angegeben hat, würde die Profilinformationen in das folgende Markup konvertieren:
<book xmlns:prf=http://arbortext.ptc.com/namespace/
applicability/profiling prf:syntax="APEX"
prf:optionSet="axdocbook">
<chapter prf:applic="(AND (IS 'os' 'Windows Vista' 'Unix')
(IS 'userlevel' 'Novice'))">
</chapter>
</book>
Der Namespace-URI für prf auf der obersten Ebene gibt eine Profilkonfiguration an. Das Profilattribut des Namespace wird durch den Publizierparameter com.ptc.arbortext.pe.service/topicCcfParam.profilingAttribute angegeben.
Das Attribut prf:syntax gibt die Syntax des Ausdrucks an. Das Attribut prf:optionSet gibt den Dokumenttyp für die Profilkonfigurationsdatei an, die verwendet wird.
Das Attribut prf:applic wird auf das Element platziert, das das Profil-Markup enthält, und ihm wird der konvertierte Ausdruck zugewiesen.
Die ursprünglichen Profilattribute können bei der Publizierung in ein Paket mithilfe des Publizierparameters com.ptc.arbortext.pe.service/topicCcfParam.removeProfilingMarkup aus den Informationselementen entfernt werden.
In der Publizierungs-Payload enthält die Datei OptionsDefinition.xml die Liste der Optionssätze für die Profilkonfiguration. Für das vorherige Beispiel könnte der Optionssatz wie folgt aussehen:
<OptionSet container="axdocbook.pcf" token="_oset_axdocbook_pcf"
label="Operating System, User Level, Output Type, Security Level Options">
<Option label="os" token="_opt_axdocbook_os"><Name>Operating System</Name>
<Choice label="Windows XP" token="_ch_axdocbook_pcf_os_windows_xp">
<Name>Windows XP</Name></Choice>
<Choice label="Windows Vista" token="_ch_axdocbook_pcf_os_windows_vista">
<Name>Windows Vista</Name></Choice>
<Choice label="Windows 7" token="_ch_axdocbook__pcf_os_windows_7">
<Name>Windows 7</Name></Choice>
<Choice label="Unix" token="_ch_axdocbook_pcf_os_unix">
<Name>Unix</Name></Choice>
</Option>
<Option label="userlevel" token="_opt_axdocbook_pcf_userlevel">
<Name>User Level</Name>
<Choice label="Novice" token="_ch_axdocbook_pcf_userlevel_novice">
<Name>Novice</Name></Choice>
<Choice label="Typical" token="_ch_axdocbook_pcf_userlevel_typical">
<Name>Typical</Name></Choice>
<Choice label="Expert" token="_ch_axdocbook_pcf_userlevel_expert">
<Name>Expert</Name></Choice>
</Option>
</OptionSet>
Weitere Informationen zu den Profil-Publizierparametern finden Sie unter Service-Worker-Parameter.
War dies hilfreich?