Applicabilità nella pubblicazione
Panoramica
Gli argomenti XML possono contenere espressioni logiche per determinare se includere il contenuto a livello di elemento. Il markup che definisce le opzioni e le scelte applicabili a un determinato contenuto viene definito applicabilità in linea. La decisione di includere o escludere un contenuto viene presa valutando questa espressione logica rispetto alle scelte selezionate dal filtro di applicabilità al momento della pubblicazione (o dal parametro rootApplicabilityExpression, se impostato in una regola di pubblicazione).
Un'espressione di applicabilità rappresenta un sottoinsieme di opzioni e scelte di un prodotto e viene utilizzata per annotare il contenuto. L'espressione associa il contenuto a un prodotto o a prodotti specifici e può quindi essere utilizzata per il filtraggio. È possibile combinare le espressioni semplici mediante operatori logici.
Nell'interfaccia utente della struttura ricambi, è possibile impostare il filtraggio sia per la struttura ricambi che per l'applicabilità in linea dei documenti dinamici utilizzando l'azione Filtro impostata sulla barra degli strumenti della scheda Struttura. La pubblicazione applica il Filtro opzioni alla struttura pubblicazione e ai relativi documenti dinamici. Se il parametro rootApplicabilityExpression della regola di pubblicazione è impostato, sovrascrive l'espressione di filtraggio definita utilizzando il gruppo di azioni Filtro.
Il filtraggio dell'applicabilità in linea è supportato solo per gli output di tipo PDF e XSL. In caso di output del bundle, non viene applicato alcun filtro durante la pubblicazione poiché i filtri vengono applicati da un utente Arbortext Content Delivery.
Le espressioni di applicabilità richiedono un parser in grado di decifrare le espressioni di scelte e opzioni specificate con operatori di intersezione e disgiuntivi, ad esempio AND, OR e NOT.
APEX
Windchill utilizza la sintassi ATO per rappresentare le espressioni di applicabilità. Quando viene pubblicato un bundle, in base alla regola di pubblicazione, le espressioni di applicabilità vengono pubblicate in formato APEX, utilizzabile da Arbortext Content Delivery. Per ulteriori informazioni sulle regole di pubblicazione, vedere la sezione "Espressioni di applicabilità in bundle".
APEX è una sintassi basata sul linguaggio di programmazione LISP. Il valore della proprietà LogicalExpression è l'espressione di applicabilità APEX che viene applicata a un oggetto Windchill. Questa proprietà è disponibile in un bundle pubblicato nel file DMPmap.xml e nel file hierarchy.xml, rispettivamente per una struttura ricambi e una gerarchia di prodotti ricambi.
Utilizzare la tabella riportata di seguito per comprendere meglio la grammatica delle espressioni APEX.
Simbolo grammatica APEX
|
Grammatica espressioni APEX
|
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 '
|
Esempi
|
È necessario definire un'espressione assegnata tra parentesi poiché l'operatore AND indicato da + ha la precedenza sull'operatore OR indicato da /.
|
Esempio 1
A un oggetto in Windchill viene assegnata un'espressione in cui l'opzione Tire è 155 o 145 e l'opzione Colour è Black o Red. Di seguito è riportato il formato ATO.
("155"/"145") + (Black/Red)
Il formato APEX corrispondente è riportato di seguito.
(AND (IS 'Tire' '155' '145') (IS 'Colour' 'Black' 'Red')
Esempio 2
A un oggetto in Windchill viene assegnata un'espressione in cui l'opzione release è X-24 o X-26. Per il valore di release X-24, l'opzione maintenance può essere M022 o M023. Il formato ATO è quindi come riportato di seguito.
(“X-24” + (“M022”/”M023”) ) / ”X-26”
Il formato APEX corrispondente è riportato di seguito.
(OR (AND (IS 'release' 'X-24') (IS 'maintenance' 'M022' 'M023')) (IS 'release' 'X-26'))
Esempio 3
A un oggetto Windchill viene assegnata un'espressione con l'effettività di servizio descritta di seguito.
All'opzione family viene assegnato il valore X96 con i modelli K95 o K96 come contesto. Il tipo di effettività di servizio è costituito dal numero di serie, con intervallo impostato tra 12000 e 13000. Di seguito è riportato il formato APEX per l'espressione e l'effettività di servizio sopra indicate.
(AND (IS 'family' 'X96') (IS 'model' 'K95' 'K96') (IS 'serialNo' '12000' '13000'))
Impostazione dei fogli di stile
Se si desidera aggiungere espressioni di applicabilità in linea al documento della struttura ricambi radice Identfier.xml inviato nel payload, è necessario modificare il foglio di stile pubstructXsl affinché vengano copiate le espressioni di applicabilità dal file Identfier.xml nella posizione corretta della mappa DITA di output (ad esempio, gli elementi topicref e topic).
Impostazione delle regole di pubblicazione
Quando si creano regole di pubblicazione per output PDF e XSL, è necessario considerare i parametri delle regole di pubblicazione da applicare durante la pubblicazione sul server Arbortext Publishing Engine. È possibile applicare i parametri delle regole di pubblicazione di applicabilità di base sia alle strutture che al contenuto in linea nei documenti dinamici. I parametri riportati di seguito sono preceduti da com.ptc.arbortext.pe/.
• applicabilitySyntax
Specificare il nome della sintassi di applicabilità utilizzata per le espressioni di applicabilità nel payload. Specificare il nome registrato sul server Arbortext Publishing Engine utilizzando il metodo della lista controllo di accesso applic::registerSyntax(). Non sono disponibili valori di default.
Se un bundle viene pubblicato per l'utilizzo con Arbortext Content Delivery e sia le strutture che i relativi argomenti utilizzano l'assemblaggio su commessa e la stessa sintassi di origine, applicabilitySyntax è l'unico parametro richiesto per la pubblicazione dei bundle.
• rootApplicabilityExpression
Specificare un'espressione di applicabilità da applicare all'intera struttura ricambi con il relativo contenuto durante la pubblicazione. La sintassi dell'espressione deve corrispondere alla sintassi trovata sia nella struttura ricambi che nel relativo contenuto testuale XML.
L'applicabilità per i documenti dinamici in linea viene attivata o disattivata mediante disableInlineApplicFiltering. Specificare true (valore di default) per disattivare l'applicabilità in linea oppure false per attivarla.
Per ulteriori informazioni sui parametri delle regole di pubblicazione, vedere
Parametri del worker del servizio.
Implementazione di un parser di sintassi
La sintassi di applicabilità può avere una forma di base se si utilizzano le etichette dell'insieme di opzioni, a condizione che le etichette siano nomi di scelta univoci. Le espressioni di applicabilità utilizzano gli operatori per combinare o ignorare le scelte. Per valutare l'espressione mediante una sintassi registrata è richiesto un parser.
Per implementare un nuovo parser di sintassi, è necessario utilizzare i package Java riportati di seguito disponibili sul server Arbortext Publishing Engine in lib\classes\applicability.jar:
• com.ptc.arbortext.applicability.expression
Un package Java che contiene le interfacce di supporto per gli oggetti dell'espressione di applicabilità per il filtraggio del contenuto con dati di scelte e opzioni. Gli elementi Options dispongono di un nome, di una descrizione e di un insieme di elementi Choice. Gli elementi Option e Choice dispongono di un attributo di etichetta utilizzato nell'interfaccia utente e nelle espressioni di applicabilità. Le etichette devono essere univoche all'interno di ciascun insieme di opzioni.
• com.ptc.arbortext.applicability.representation
Un package Java che contiene le interfacce di supporto del markup di applicabilità per elementi, attributi, contenuto e istruzioni di elaborazione.
Nel payload, le opzioni e le scelte sono incluse nel file OptionsDefinition.xml.
Registrazione della sintassi di applicabilità
Prima di poter utilizzare la sintassi di applicabilità durante la pubblicazione, è necessario registrarla sul server Arbortext Publishing Engine mediante una funzione lista controllo di accesso. Utilizzare la funzione di registrazione indicata di seguito.
applic::registerSyntax(NAME, TEST_XPATH, EXPR_XPATH, PARSER_CLASS)
• NOME è il nome della sintassi di applicabilità.
• TEST_XPATH è un'espressione XPath booleana da selezionare se per un elemento è disponibile un'espressione di applicabilità.
• EXPR_XPATH è un'espressione XPath che recupera l'applicabilità per un elemento specifico.
• PARSER_CLASS è il nome della classe del parser per la sintassi di applicabilità.
Un parser di assemblaggio su commessa è disponibile sul server per default, registrato come riportato di seguito (ignorare le interruzioni di riga).
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")
Espressioni di applicabilità in bundle
Il filtraggio di applicabilità non viene eseguito durante la pubblicazione di bundle. Le espressioni di applicabilità vengono invece convertite in un formato che può essere applicato in Arbortext Content Delivery.
L'applicabilità della struttura pubblicazione è nella proprietà dei metadati LogicalExpression. L'applicabilità degli argomenti viene copiata nell'attributo {http://arbortext.ptc.com/namespace/ATO}applic, quindi convertita.
I parametri di applicabilità in linea riportati di seguito vengono applicati alle strutture pubblicate in bundle.
• com.ptc.arbortext.pe.service/structureSourceApplicSyntax
Specificare il nome della sintassi di applicabilità utilizzata per le espressioni di applicabilità nella struttura ricambi. Specificare il nome registrato da applic::registerSyntax sul server Arbortext Publishing Engine. Se non specificato, viene utilizzato il valore di applicabilitySyntax. Se applicabilitySyntax non è specificato, il valore di default è ATO.
• com.ptc.arbortext.pe.service/structureTargetApplicSyntax
Specificare il nome della sintassi di applicabilità utilizzata per le espressioni di applicabilità al termine del processo di elaborazione del servizio del sottosistema. Specificare il nome registrato da applic::registerSyntax sul server Arbortext Publishing Engine. Se non specificato, viene utilizzato il valore di applicabilitySyntax. Se applicabilitySyntax non è specificato, il valore di default è ATO.
• disableStructureApplicabilityConverter
Specificare se individuare e convertire le espressioni di applicabilità in una struttura. Specificare false, il valore di default per i bundle, per attivare la funzione. Specificare true per disattivarla. Per default, è disattivata per gli output PDF.
I parametri di applicabilità in linea riportati di seguito vengono applicati agli argomenti pubblicati in bundle.
• com.ptc.arbortext.pe.service/topicCcfParam.sourceApplicabilitySyntax
Specificare il nome della sintassi di applicabilità utilizzata per le espressioni di applicabilità in argomenti del bundle. Specificare il nome registrato sul server Arbortext Publishing Engine. Se non specificato, viene utilizzato il valore di applicabilitySyntax. Se applicabilitySyntax non è specificato, il valore di default è ATO.
• com.ptc.arbortext.pe.service/topicCcfParam.targetApplicabilitySyntax
Specificare il nome della sintassi di applicabilità utilizzata per le espressioni di applicabilità negli argomenti al termine del processo di elaborazione del servizio del sottosistema. Specificare il nome registrato sul server Arbortext Publishing Engine. Se non specificato, viene utilizzato il valore di applicabilitySyntax. Se applicabilitySyntax non è specificato, il valore di default è APEX.
• com.ptc.arbortext.pe.service/topicCcfParam.disableApplicabilityConverter
Specificare se individuare e convertire le espressioni di applicabilità in un argomento. Specificare false, il valore di default, per attivare la funzione. Specificare true per disattivarla.
Espressioni di applicabilità dei profili
Gli elementi informativi possono includere un profilo applicato al momento della creazione. Il markup dei profili può essere convertito in un'espressione di applicabilità utilizzando una sintassi di applicabilità. La conversione dei profili è controllata dal parametro di pubblicazione booleano com.ptc.arbortext.pe.service/topicCcfParam.disableProfilingConverter.
È ad esempio possibile trovare il seguente markup in un documento XML, dove os e userlevel specificano il profilo:
<chapter os="Windows Vista;Unix" userlevel="Novice">
Una richiesta di pubblicazione con la sintassi APEX specificata come espressione di applicabilità converte le informazioni relative al profilo nel seguente markup:
<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>
L'URI del namespace per l'elemento prf al livello superiore specifica una configurazione di creazione dei profili. L'attributo per la creazione dei profili del namespace è specificato dal parametro di pubblicazione com.ptc.arbortext.pe.service/topicCcfParam.profilingAttribute.
L'attributo prf:syntax specifica la sintassi dell'espressione. L'attributo prf:optionSet specifica il tipo di documento per il file di configurazione della creazione dei profili in uso.
L'attributo prf:applic viene inserito nell'elemento che contiene il markup dei profili, con l'espressione convertita assegnata.
Gli attributi originali per la creazione dei profili possono essere rimossi dagli elementi informativi al momento della pubblicazione in un bundle utilizzando il parametro di pubblicazione com.ptc.arbortext.pe.service/topicCcfParam.removeProfilingMarkup.
Nel payload di pubblicazione, il file OptionsDefinition.xml contiene l'elenco degli insiemi di opzioni per la configurazione della creazione dei profili. Per l'esempio precedente, l'insieme di opzioni potrebbe presentarsi come indicato di seguito.
<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>
Per ulteriori informazioni sui parametri di pubblicazione dei profili, vedere
Parametri del worker del servizio.