Applicazione Service
Panoramica dell'applicazione Service
L'applicazione Service in Server Arbortext PE gestisce la trasformazione iniziale di contenuto e markup XML di input inviati dal worker SIS di Windchill Visualization Services e li prepara per la pubblicazione.
Nel Server Arbortext PE è necessario che sia installata e attivata l'applicazione Service. Per default, si trova in:
percorso-Arbortext\application\com.ptc.arbortext.service
Descrizione del tipo di documento di Service
La directory doctypes dell'applicazione Service contiene gli schemi di pubstruct e partslist per gestire i moduli generici dei documenti della struttura pubblicazione e dell'elenco parti inviati dal worker SIS al Server Arbortext PE.
La directory doctypes dell'applicazione Service contiene inoltre lo schema di pubspec, utilizzato per trasformare le specifiche di pubblicazione di input inviate dal worker SIS in parametri di pubblicazione da applicare al processo di pubblicazione. Un file pubspec.xml che contiene i valori di default si trova in:
application\com.ptc.arbortext.service\lib\pubspec.xml
Trasformazione del markup
L'applicazione Service contiene i fogli di stile XLST che trasformano contenuto e markup in arrivo in un file XML adatto alla pubblicazione utilizzando l'applicazione Technical Information campione. Poiché si tratta di un campione di lavoro che copre il processo dalla trasformazione alla pubblicazione, i documenti sono conformi agli schemi del tipo di documento DITA di Technical Information. Un writer esperto del foglio di stile può seguire le linee guida commentate del foglio di stile della trasformazione XLS dell'applicazione Service come punto di partenza.
Cercare i fogli di stile XSLT campione in:
percorso-Arbortext\application\com.ptc.arbortext.service\doctypes
• Nella sottodirectory pubstruct, techinfomap.xsl (che fa riferimento a ditamap-common.xsl) trasforma una struttura pubblicazione nella mappa dell'applicazione Technical Information con gli argomenti correlati.
• Anche nella sottodirectory pubstruct, DMPmap.xsl (che fa riferimento a DMPmap-base.xsl e DMPmap-pvz.xsl) trasforma una struttura informazioni in un formato adatto alla pubblicazione di bundle.
• Nella sottodirectory partslist, techinfo.xsl trasforma un elenco di parti in una descrizione della parte illustrata (IPD).
Tali fogli di stile XSL di trasformazione forniscono linee guida commentate come esempio delle personalizzazioni necessarie per il tipo di documento. Queste applicazioni sono distribuite in una directory application sul server Arbortext Publishing Engine.
Markup XML di pubstruct
Lo schema di pubstruct fornisce la struttura per il modulo generico del markup del documento XML generalizzato inviato dal worker SIS al Server Arbortext PE. Il documento Identifier.xml inviato nel file del payload è una rappresentazione XML della struttura gerarchica per la struttura informazioni o per la struttura pubblicazione creata in Windchill. Il markup XML è conforme allo schema di pubstruct.xsd.
Il documento
Identifier.xml è incluso con ogni payload inviato da
Windchill a
Server Arbortext PE. (Per informazioni sul file payload e il relativo contenuto, vedere
Payload e manifest). Il nome
Identifier è generato dal computer, ad esempio,
00000015.xml.
Il documento Identifier.xml deve essere trasformato in un documento conforme a un tipo di documento adatto alla pubblicazione da parte di Arbortext Publishing Engine o per la creazione di un bundle InService. Ad esempio, è possibile convertire un documento Identifier.xml in un documento DITA conforme allo schema di techinfomap che può essere pertanto pubblicato in PDF utilizzando un motore di stampa sul server in grado di interpretare l'XML.
Tutti gli elementi vengono documentati nello schema. Cercare gli elementi riportati di seguito in Server Arbortext PE.
percorso-Arbortext\application\com.ptc.arbortext.service
\doctypes\pubstruct\pubstruct.xsd
Trasformazione della struttura pubblicazione
Nella tabella riportata di seguito vengono descritte le modalità di trasformazione delle informazioni relative alla struttura di pubblicazione in una struttura della mappa DITA techinfomap.
• La prima colonna mostra il markup della struttura pubblicazione di origine utilizzando un'espressione XPath.
• La seconda colonna mostra il markup techinfomap trasformato utilizzando un'espressione XPath.
• La terza colonna contiene note aggiuntive.
Ignorare le interruzioni di riga per le espressioni XPath.
XPath di origine della struttura pubblicazione
|
XPath del risultato di techinfomap
|
Note
|
/PublicationStructure
|
/techinfomap
|
|
Nessuno
|
/techinfomap /@xml:lang
|
Il parametro xml:lang sovrascrive il valore per questo elemento. L'impostazione di default è en.
|
Nessuno
|
/techinfomap /@outputclass
|
Il parametro outputclass sovrascrive il valore per questo elemento. Non è presente alcun valore di default.
|
/PublicationStructure /Title
|
/techinfomap /title
|
|
/PublicationStructure //Content[not(@path) and not(@uri)]
|
/techinfomap //division
|
divison/@format è impostato su xml.
|
/PublicationStructure //Content[@path and (count(Content)>0 or count(SpecialContent) >0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='1']
|
/techinfomap //division /@href=@path
|
division/@format="dita", division/@scope="local". L'elemento Content presenta almeno un elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content[@path and (count(Content)=0 or count(SpecialContent) =0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='1']
|
/techinfomap //contentref /@href=@path
|
contentref/@format="dita", contentref/@scope="local". L'elemento Content non presenta alcun elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content[not(@path) and @uri and (count(Content)>0 or count(SpecialContent) >0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='1']
|
/techinfomap //division /@href=@uri
|
division/@format="dita", division/@scope="local". L'elemento Content presenta almeno un elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content[not(@path) and @uri and (count(Content)=0 or count(SpecialContent) =0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='1']
|
/techinfomap //contentref /@href=@uri
|
contentref/@format="dita", contentref/@scope="local". L'elemento Content non presenta alcun elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content[@path and (count(Content)>0 or count(SpecialContent) >0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='2']
|
/techinfomap //division /@href=@path
|
division/@format="ditamap", division/@scope="local". L'elemento Content presenta almeno un elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content[@path and (count(Content)=0 or count(SpecialContent) =0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='2']
|
/techinfomap //contentref /@href=@path
|
contentref/@format="ditamap", contentref/@scope="local". L'elemento Content non presenta alcun elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content[not(@path) and @uri and (count(Content)>0 or count(SpecialContent) >0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='2']
|
/techinfomap //division /@href=@uri
|
division/@format="ditamap", division/@scope="local". L'elemento Content presenta almeno un elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content[not(@path) and @uri and (count(Content)=0 or count(SpecialContent) =0)] /Metadata[contains(@source, 'DynamicDocument')] /Property[@token= 'x-raomContentStructure'] /Value[text()='2']
|
/techinfomap //contentref /@href=@uri
|
contentref/@format="ditamap", contentref/@scope="local". L'elemento Content non presenta alcun elemento figlio Content o SpecialContent.
|
/PublicationStructure //Content/Title
|
/techinfomap //*[name()= 'division' or name()=' contentref'] /@navtitle
|
|
/PublicationStructure //Content /Metadata/Property [matches(@token, '\.TitleFromContent$')] /Value[text()="yes"]
|
/techinfomap //*[name()= 'division' or name()= 'contentref'] /@locktitle="no"
|
|
/PublicationStructure //Content /Metadata/Property [matches(@token, '\.TitleFromContent$')] /Value[text()!="yes"]
|
/techinfomap //*[name()= 'division' or name()= 'contentref'] /@locktitle="yes"
|
Impostare solo se non è specificato Property[matches(@token, '\.TitleFromContent$')]/Value[text()!="yes"]. In caso contrario, acquisisce il titolo dal contenuto.
|
/PublicationStructure //Content /Metadata/Property [@token="sis.base. ExcludeContent"] /Value[text()="true"]
|
/techinfomap //*[name()= 'division' or name()= 'contentref'] /@processing-role= "resource-only"
|
|
/PublicationStructure //Content /Metadata/Property [@token="sis.base. ExcludeTitle"] /Value[text()="true"]
|
/techinfomap //*[name()= 'division' or name()= 'contentref'] /@toc="no"
|
Impostare solo se Property[@token="sis.base.ExcludeContent"]/Value[text()!="true"]
|
/PublicationStructure //Content /@targetType
In caso contrario:
/PublicationStructure //Content /Metadata/Property [@token= 'x-raomFirstTagName'] /Value
|
/techinfomap //*[name()= 'division' or name()= 'contentref'] /@type
|
Il valore del parametro del worker SIS com.ptc.arbortext.pe.service.partlistStylesheet.targetType può sostituire questo valore, se impostato.
|
/PublicationStructure //Content /Metadata/Property [@token= 'x-raomFirstTagName'] /Value
|
/techinfomap //*[name()= 'division' or name()= 'contentref'] /@type
|
Il valore del parametro del worker SIS com.ptc.arbortext.pe.service.partlistStylesheet.targetType può sostituire questo valore, se impostato.
|
/PublicationStructure //SpecialContent [@type= "com.ptc.sis.PsToc"]
|
/techinfomap//toc
|
|
/PublicationStructure //SpecialContent [@type= "com.ptc.sis.PsIndex"]
|
/techinfomap //index
|
|
Struttura pubblicazione Identifier.xml di esempio
Un esempio del markup XML generalizzato per una struttura di pubblicazione viene seguito dalla techinfomap risultante in seguito alla trasformazione.
<PublicationStructure
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.PsSection|com.ptc.sis.PsRoot">
<Title>test1</Title>
<Description>0000000012</Description>
<Metadata
source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.PsSection|com.ptc.sis.PsRoot">
<Property token="objNumber"> <Value>0000000012</Value></Property>
<Property token="objName"> <Value>test1</Value></Property>
<Property token="orgid"> <Value>Demo Organization</Value></Property>
</Metadata>
<SpecialContent
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.PsSpecial|com.ptc.sis.PsToc">
<Title>Table of Contents</Title>
<Description>0000000013</Description>
<Metadata
source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.PsSpecial|com.ptc.sis.PsToc">
<Property token="objNumber"><Value>0000000013</Value></Property>
<Property token="objName"><Value>Table of Contents</Value>
</Property>
</Metadata>
</SpecialContent>
<Content
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.PsSection">
<Title>publication section 1</Title>
<Description>0000000030</Description>
<Metadata
source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.PsSection">
<Property token="sis.base.ExcludeContent"><Value>false</Value>
</Property>
<Property token="objNumber"><Value>0000000030</Value></Property>
<Property token="sis.base.ExcludeTitle"><Value>false</Value>
</Property>
<Property token="insertLocationPubsection"></Property>
<Property token="objName"><Value>publication section 1</Value>
</Property>
</Metadata>
<Content
path="com.acme.DynamicDocument\111704.xml"
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.TextualContentRef"
uri="x-wc://file=0000000016.xml">
<Title>Procedure with an image (procedure)</Title>
<Description>0000000017</Description>
<Metadata
source="wt.epm.EPMDocument|com.acme.DynamicDocument">
<Property token="objNumber"><Value>0000000016</Value></Property>
<Property token="x-raomDocTypeName"><Value>techinfo</Value>
</Property>
<Property token="x-raomFirstTagName"><Value>procedure</Value>
</Property>
<Property token="objName"><Value>Procedure with an image
(procedure)</Value></Property>
<Property token="CADName"><Value>0000000016.xml</Value>
</Property>
<Property token="filename"><Value>0000000016.xml</Value>
</Property>
</Metadata>
<Metadata
source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.TextualContentRef">
<Property token="sis.base.ExcludeContent"><Value>false</Value>
</Property>
<Property token="objNumber"><Value>0000000017</Value></Property>
<Property token="sis.base.ExcludeTitle"><Value>false</Value>
</Property>
<Property token="objName"><Value>Procedure with an image (procedure)
</Value></Property>
<Property token="sis.contentholder.TitleFromContent"><Value >false
</Value></Property>
</Metadata>
</Content>
</Content>
<Content
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv|com.ptc.sis.
PsSection">
<Title>Part List Section</Title>
<Description>0000000027</Description>
<Metadata
source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.PsSection">
<Property token="sis.base.ExcludeContent"><Value>false</Value>
</Property>
<Property token="objNumber"><Value>0000000027</Value></Property>
<Property token="sis.base.ExcludeTitle"><Value>false</Value>
</Property>
<Property token="objName"><Value>Part List Section</Value>
</Property>
<Property token="sis.pssection.TitleFromContent"><Value >false
</Value></Property>
</Metadata>
<Content
path="com.ptc.arbortext.windchill.partlist.PartList\0000000004.xml"
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.PartsListRef"
uri="x-wc://com.ptc.arbortext.windchill.partlist.PartList/
0000000004.xml">
<Title>Part List 1</Title>
<Description>0000000028</Description>
<Metadata
source="com.ptc.arbortext.windchill.partlist.PartList">
<Property token="type"><Value>Parts List</Value></Property>
</Metadata>
<Metadata
source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.PartsListRef">
<Property token="sis.base.ExcludeContent"><Value>false</Value>
</Property>
<Property token="objNumber"><Value>0000000028</Value></Property>
<Property token="sis.base.ExcludeTitle"><Value>false</Value>
</Property>
<Property token="objName"><Value>Part List 1</Value></Property>
</Metadata>
</Content>
</Content>
<SpecialContent
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.PsSpecial|com.ptc.sis.PsIndex">
<Title>Index</Title>
<Description>0000000014</Description>
<Metadata
source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.PsSpecial|com.ptc.sis.PsIndex">
<Property token="objNumber"><Value>0000000014</Value></Property>
<Property token="objName"><Value>Index</Value></Property>
</Metadata>
</SpecialContent>
</PublicationStructure>
Di seguito viene riportata la mappa DITA techinfomap risultante:
<techinfomap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"
xsi:noNamespaceSchemaLocation="urn:ptc:names:arbortext:dita:xsd:
techinfomap.xsd"
xml:lang="en">
<title>test1</title>
<toc/>
<division format="xml" navtitle="publication section 1" locktitle="yes">
<contentref href="com.acme.DynamicDocument\111704.xml" format="dita"
scope="local"
navtitle="Procedure with an image (procedure)"
locktitle="yes"
type="procedure"/>
</division>
<division format="xml" navtitle="Part List Section" locktitle="yes">
<contentref href="com.ptc.arbortext.windchill.partlist.PartList\
0000000004.xml"
format="dita"
scope="local"
navtitle="Part List 1"
locktitle="yes"
type="topic"/>
</division>
<index/>
</techinfomap>
Struttura informazioni Identifier.xml di esempio
Un estratto dal markup XML generalizzato per una struttura di informazioni che utilizza la navigazione grafica è seguito dalla trasformazione risultante della DMPmap. Alcune parti sono state escluse per la leggibilità, comprese molte proprietà comuni per iterazione, versione, revisione, organizzazione e stato del ciclo di vita. Alcune voci di Content e di Metadata per i gruppi della struttura informazioni e il relativo contenuto sono stati rimossi.
<PublicationStructure
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.IsRoot">
<Title>GraphicalNav</Title>
<Description>0000000017</Description>
<ResourceMap/>
<Metadata
source="com.ptc.arbortext.windchill.asps.services.ASPSMappingAPI">
<Property token="navigation">
<Value>
<MapDefList>
<MapDef repname="graphNav" viewname="view">
<PubNode idref="wt.part.WTPartMaster130414-
wt.viewmarkup.DerivedImage141614">
<g>/2</g>
</PubNode>
<PubNode idref="wt.part.WTPartMaster130427-
wt.viewmarkup.DerivedImage141614">
<g>/160/41</g>
</PubNode>
<PubNode idref="wt.part.WTPartMaster130444-
wt.viewmarkup.DerivedImage141614">
<g>/215/20</g>
</PubNode>
<PubNode idref="wt.part.WTPartMaster141716-
wt.viewmarkup.DerivedImage141614">
<g>/224</g>
</PubNode>
</MapDef>
</MapDefList>
</Value>
</Property>
</Metadata>
<Metadata source="wt.pdmlink.PDMLinkProduct">
<Property token="name"> <Value>graphNavTest</Value></Property>
<Property token="preference.com.ptc.arbortext.windchill.
siscore.translation.SourceLanguage">
<Value>en</Value></Property>
</Metadata>
<Metadata source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.IsRoot">
<Property token="asic.BundleVendor"> <Value>PTC</Value></Property>
<Property token="objNumber"> <Value>0000000017</Value></Property>
<Property token="objName"> <Value>GraphicalNav</Value></Property>
<Property token="sis.group.contentLocation">
<Value>/graphNavTest</Value></Property>
<Property token="isPrimaryASPSRoot"> <Value>true</Value></Property>
<Property token="asic.BundleVolumeId"> <Value>qwerty</Value></Property>
<Property token="sis.group.vizmapping">
<Value>
{wt.part.WTPartMaster:130414-wt.viewmarkup.DerivedImage:141614|/2|}
{wt.part.WTPartMaster:130427-wt.viewmarkup.DerivedImage:141614|/160/41|}
{wt.part.WTPartMaster:130444-wt.viewmarkup.DerivedImage:141614|/215/20|}
{wt.part.WTPartMaster:141716-wt.viewmarkup.DerivedImage:141614|/224|}
</Value>
</Property>
<Property token="asic.BundleName"> <Value>graphNavTest</Value></Property>
</Metadata>
<Content type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.IsGroup">
<Title>ConnectingRod</Title>
<Description>0000000019</Description>
<ResourceMap>
<Resource token="repForConnectingRod">
<Metadata>
<Property token="default"> <Value>true</Value></Property>
</Metadata>
<Content path="reps\185408\Connecting_Rod_sBOM_Part.pvm"
type="Unknown"/>
<Content path="reps\185408\Connecting_Rod_sBOM_Part.pvs"
type="Unknown"/>
<Content path="reps\185408\crankshaft_asm_11.ol" type="OL"/>
<Content path="reps\185408\crankshaft_asm_12.ol" type="OL"/>
<Content path="reps\185408\crankshaft_asm_13.ol" type="OL"/>
<Content path="reps\185408\crankshaft_asm_14.ol" type="OL"/>
<Content path="reps\185408\crankshaft_asm_15.ol" type="OL"/>
<Content path="reps\185408\crankshaft_asm_16.ol" type="OL"/>
<Content path="reps\185408\wvspvp.pvp" type="Unknown"/>
</Resource>
</ResourceMap>
<Metadata source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.IsGroup">
<Property token="sis.base.ExcludeContent">
<Value>false</Value></Property>
<Property token="objNumber">
<Value>0000000019</Value></Property>
<Property token="sis.group.vizmapping">
<Value>
{wt.part.WTPartMaster:152543-wt.viewmarkup.DerivedImage:152555
|/@@PV-AUTO-ID@@002|}
{wt.part.WTPartMaster:152599-wt.viewmarkup.DerivedImage:152555
|/@@PV-AUTO-ID@@003|}
</Value>
</Property>
<Property token="sis.base.ExcludeTitle"> <Value>false</Value></Property>
<Property token="objName"> <Value>ConnectingRod</Value></Property>
<Property token="sis.group.contentLocation">
<Value>/graphNavTest</Value></Property>
</Metadata>
<Content path="com.acme.DADynamicDocument\133110.xml"
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.TextualContentRef"
uri="x-wc://file=0000000531.xml">
<Title>PistonRodMap</Title>
<Description>0000010134</Description>
<Metadata source="wt.epm.EPMDocument|com.acme.DynamicDocument
|com.acme.DADynamicDocument">
<Property token="docType"> <Value>PUB_COMPOUNDTEXT</Value></Property>
<Property token="objNumber"> <Value>0000000531</Value></Property>
<Property token="x-raomContentStructure"> <Value>2</Value></Property>
<Property token="x-raomDocTypeName"> <Value>map</Value></Property>
<Property token="x-raomFirstTagName"> <Value>map</Value></Property>
<Property token="type"> <Value>DADynamicDocument</Value></Property>
<Property token="objName"> <Value>PistonRodMap</Value></Property>
<Property token="derived"> <Value>false</Value></Property>
<Property token="CADName"> <Value>0000000531.xml</Value></Property>
<Property token="missingDependents"> <Value>false</Value></Property>
<Property token="placeHolder"> <Value>false</Value></Property>
<Property token="authoringApplication"> <Value>ARBORTEXT</Value>
</Property>
<Property token="filename"> <Value>0000000531.xml</Value></Property>
<Property token="typeDisplayName"> <Value>DADynamicDocument</Value>
</Property>
</Metadata>
</Content>
<Content path="com.acme.DynamicDocument\128404.jpg"
type="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.IllustrationRef"
uri="x-wc://file=0000000035.jpg">
<Title>excavator3.jpg</Title>
<Description>0000010191</Description>
<Metadata source="wt.epm.EPMDocument|com.acme.DynamicDocument">
<Property token="docType"> <Value>PUB_GRAPHIC</Value></Property>
<Property token="objNumber"> <Value>0000000035</Value></Property>
<Property token="type"> <Value>Dynamic Document</Value></Property>
<Property token="objName"> <Value>excavator3.jpg</Value></Property>
<Property token="derived"> <Value>false</Value></Property>
<Property token="CADName"> <Value>0000000035.jpg</Value></Property>
<Property token="missingDependents"> <Value>false</Value></Property>
<Property token="placeHolder"> <Value>false</Value></Property>
<Property token="authoringApplication"> <Value>GRAPHICSEDITOR</Value>
</Property>
<Property token="filename"> <Value>0000000035.jpg</Value></Property>
<Property token="typeDisplayName"> <Value>Dynamic Document</Value>
</Property>
</Metadata>
<Metadata source="wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.IllustrationRef">
<Property token="sis.base.ExcludeContent"> <Value>false</Value></Property>
<Property token="objNumber"> <Value>0000010191</Value></Property>
<Property token="sis.base.ExcludeTitle"> <Value>false</Value></Property>
<Property token="objName"> <Value>excavator3.jpg</Value></Property>
</Metadata>
</Content>
</PublicationStructure>
Come parte di un passo provvisorio di conversione, i file HTML vengono creati da file XML in payload (che aggiunge .html all'intero nome del file originale) e le immagini referenziate vengono convertite per la visualizzazione (formato .pvz).
Di seguito viene riportata la mappa DITA DMPmap risultante:
<DMPmap xml:lang="en">
<title>GraphicalNav</title>
<DMPmeta>
<DMPprojectinfo encryption="no" projectname="graphNavTest"/>
<data name="contenttype">is</data>
<data name="bundletype">full</data>
<data name="volumename">graphNavTest</data>
<data name="volumeid">qwerty</data>
<data name="vendor">PTC</data>
</DMPmeta>
<languageset locale="en_US">
<topicref id="d8e1" format="xml" navtitle="GraphicalNav" locktitle="yes">
<topicmeta>
<metadata>
<category>com.ptc.arbortext.windchill.asps.services.ASPSMappingAPI
</category>
<data-about type="navigation">
<data name="view">view</data>
<data href="#wt.part.WTPartMaster130414-wt.viewmarkup.
DerivedImage141614">/2</data>
<data href="#wt.part.WTPartMaster130427-wt.viewmarkup.
DerivedImage141614">/160/41</data>
<data href="#wt.part.WTPartMaster130444-wt.viewmarkup.
DerivedImage141614">/215/20</data>
<data href="#wt.part.WTPartMaster141716-wt.viewmarkup.
DerivedImage141614">/224</data>
</data-about>
</metadata>
<metadata>
<category>wt.pdmlink.PDMLinkProduct</category>
<data name="name">graphNavTest</data>
<data name="preference.com.ptc.arbortext.windchill.siscore.
translation.SourceLanguage">en</data>
</metadata>
<metadata>
<category>wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.IsRoot</category>
<data name="asic.BundleVendor">PTC</data>
<data name="objNumber">0000000017</data>
<data name="objName">GraphicalNav</data>
<data name="sis.group.contentLocation">/graphNavTest</data>
<data name="isPrimaryASPSRoot">true</data>
<data name="asic.BundleVolumeId">qwerty</data>
<data name="sis.group.vizmapping">
{wt.part.WTPartMaster:130414-wt.viewmarkup.DerivedImage:
141614|/2|}
{wt.part.WTPartMaster:130427-wt.viewmarkup.DerivedImage:
141614|/160/41|}
{wt.part.WTPartMaster:130444-wt.viewmarkup.DerivedImage:
141614|/215/20|}
{wt.part.WTPartMaster:141716-wt.viewmarkup.DerivedImage:
141614|/224|}
</data>
<data name="asic.BundleName">graphNavTest</data>
</metadata>
</topicmeta>
<topicref id="d8e200" format="xml" navtitle="ConnectingRod" locktitle="yes">
<topicmeta>
<metadata>
<category>com.ptc.arbortext.windchill.asps.services.ASPSMappingAPI
</category>
<data-about type="navigation" href="reps\185408\
Connecting_Rod_sBOM_Part.pvz"
format="pvz">
<data name="view">view</data>
<data href="#wt.part.WTPartMaster152543-wt.viewmarkup.
DerivedImage152555">
/@@PV-AUTO-ID@@002</data>
<data href="#wt.part.WTPartMaster152599-wt.viewmarkup.
DerivedImage152555">
/@@PV-AUTO-ID@@003</data>
</data-about>
</metadata>
<metadata>
<category>wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.BaseDiv
|com.ptc.sis.IsGroup</category>
<data name="sis.base.ExcludeContent">false</data>
<data name="objNumber">0000000019</data>
<data name="sis.group.vizmapping">
{wt.part.WTPartMaster:152543-wt.viewmarkup.
DerivedImage:152555|
/@@PV-AUTO-ID@@002|}
{wt.part.WTPartMaster:152599-wt.viewmarkup.
DerivedImage:152555|
/@@PV-AUTO-ID@@003|}
</data>
<data name="sis.base.ExcludeTitle">false</data>
<data name="objName">ConnectingRod</data>
<data name="sis.group.contentLocation">/graphNavTest</data>
</metadata>
</topicmeta>
</topicref>
<topicref id="d8e341" href="x-wc://file=0000000531.xml"
copy-to="com.acme.DADynamicDocument\133110.xml.html"
scope="local"
format="ditamap"
type="map"
navtitle="PistonRodMap"
locktitle="yes">
<topicmeta>
<metadata>
<category>wt.epm.EPMDocument|com.acme.DynamicDocument|com.acme.
DADynamicDocument</category>
<data name="docType">PUB_COMPOUNDTEXT</data>
<data name="objNumber">0000000531</data>
<data name="x-raomContentStructure">2</data>
<data name="x-raomDocTypeName">map</data>
<data name="x-raomFirstTagName">map</data>
<data name="type">DADynamicDocument</data>
<data name="objName">PistonRodMap</data>
<data name="derived">false</data>
<data name="CADName">0000000531.xml</data>
<data name="missingDependents">false</data>
<data name="placeHolder">false</data>
<data name="authoringApplication">ARBORTEXT</data>
<data name="filename">0000000531.xml</data>
<data name="typeDisplayName">DADynamicDocument</data>
</metadata>
<metadata>
<category>wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.TextualContentRef
</category>
<data name="sis.base.ExcludeContent">false</data>
<data name="objNumber">0000010134</data>
<data name="sis.base.ExcludeTitle">false</data>
<data name="objName">PistonRodMap</data>
<data name="sis.contentholder.TitleFromContent">false</data>
</metadata>
</topicmeta>
</topicref>
<topicref id="d8e2533" href="x-wc://file=0000000035.jpg"
copy-to="com.acme.DynamicDocument\128404.jpg"
scope="local"
format="jpg"
navtitle="excavator3.jpg"
locktitle="yes">
<topicmeta>
<metadata>
<category>wt.epm.EPMDocument|com.acme.DynamicDocument</category>
<data name="docType">PUB_GRAPHIC</data>
<data name="objNumber">0000000035</data>
<data name="type">Dynamic Document</data>
<data name="objName">excavator3.jpg</data>
<data name="derived">false</data>
<data name="CADName">0000000035.jpg</data>
<data name="missingDependents">false</data>
<data name="placeHolder">false</data>
<data name="authoringApplication">GRAPHICSEDITOR</data>
<data name="filename">0000000035.jpg</data>
<data name="typeDisplayName">Dynamic Document</data>
</metadata>
<metadata>
<category>wt.part.WTPart|com.ptc.sis.Base|com.ptc.sis.Content
|com.ptc.sis.ContentRef|com.ptc.sis.IllustrationRef
</category>
<data name="sis.base.ExcludeContent">false</data>
<data name="objNumber">0000010191</data>
<data name="sis.base.ExcludeTitle">false</data>
<data name="objName">excavator3.jpg</data>
</metadata>
</topicmeta>
</topicref>
</languageset>
</DMPmap>
Markup XML di partslist
Lo schema di partslist fornisce la struttura per il modulo generico del markup del documento XML generalizzato applicato agli elenchi parti inviati dal worker SIS al Server Arbortext PE. Il documento Identifier.xml dell'elenco parti è una rappresentazione XML della struttura dell'elenco parti creata in Windchill. Manifest.xml nel payload la elenca in una directory denominata com.ptc.arbortext.windchill.partlist.PartList. Il nome Identifier dell'elenco parti è generato dal computer, ad esempio 00000005.xml.
Il documento Identifier.xml dell'elenco parti deve essere trasformato in un documento adatto alla pubblicazione da parte di Arbortext Publishing Engine. Ad esempio, è possibile convertire un documento Identifier.xml dell'elenco parti in un documento DITA conforme allo schema di techinfo che può essere pertanto pubblicato in una descrizione delle parti illustrata (IPD) che include l'elenco parti per l'assieme, le immagini, le note a piè di pagina, i link e così via.
Windchill genera l'elenco parti Identifier.xml in un formato XML IPD. In generale, per ogni valore della proprietà dell'elenco parti, viene generato un partattribute. L'attributo name contiene il nome della proprietà. Il contenuto dell'elemento contiene il valore della proprietà. Se la proprietà presenta più di un valore, ogni valore è racchiuso tra tag partattributevalue.
Gli elementi sono documentati nello schema di Arbortext Publishing Engine:
percorso-Arbortext\application\com.ptc.arbortext.service\doctypes
\partslist\partslist.xsd
Trasformazione dell'elenco parti
Nella tabella riportata di seguito vengono spiegate le modalità di trasformazione delle informazioni relative all'elenco parti nel markup della IPD.
• La prima colonna della tabella è l'abbreviazione assegnata al markup techinfo.
Le abbreviazioni vengono utilizzate nell'esempio di markup della IPD techinfo.
• La seconda colonna mostra il markup dell'elenco parti di origine utilizzando un'espressione XPath.
• La terza colonna mostra il markup della IPD techinfo trasformato utilizzando un'espressione XPath.
• La quarta colonna contiene note aggiuntive.
Ignorare le interruzioni di riga per le espressioni XPath.
Abbreviazione
|
XPath di origine dell'elenco parti
|
XPath del risultato di techinfo
|
Note
|
IPD-Id
|
Nessuno
|
/ipd/@id
|
Il parametro sovrascrive il contenuto per questo elemento.
In caso contrario, generate-id() genera un valore.
|
IPD-Title
|
/PartsList /Metadata /Property [@token="name"] /Value
|
/ipd/title
|
Il parametro sovrascrive il contenuto per questo elemento.
In caso contrario, utilizza il valore restituito dall'XPath di origine.
|
IPD-Metadata-Source
|
/PartsList /Metadata /@source
|
/ipd/prolog /metadata /category
|
È possibile che esistano più elementi /PartsList/Metadata.
|
IPD-Metadata-Property-Name
|
/PartsList /Metadata /Property /@token
|
/ipd/prolog /metadata /data/@name
|
È possibile che esistano più elementi /PartsList/Metadata/Property.
|
IPD-Metadata-Property-Value
|
/PartsList /Metadata /Property/Value
|
/ipd/prolog /metadata/data
|
È possibile che esistano più elementi /PartsList/Metadata/Property.
|
IPD-Fig-Title
|
/PartsList /Images /Image[1] /Metadata /Property [@token='name'] /Value
|
/ipd/ipdbody /fig/title
|
Il parametro sovrascrive il contenuto per questo elemento.
In caso contrario, l'attributo name della prima immagine viene utilizzato come titolo.
|
IPD-Fig-Path
|
/PartsList /Images /Image[@type != 'c3di'] /Metadata /Property [@token= 'CADName'] /Value
|
/ipd/ipdbody /fig/image /@href
|
È possibile che esistano più elementi /PartsList/Images/Image.
|
IPD-Fig-View
|
/PartsList /Images /Image /Metadata /Property[@token ='printView'] /Value
|
/ipd/ipdbody /fig/image /@rev
|
È possibile che esistano più elementi /PartsList/Images/Image.
|
IPD-Fig-View
|
/PartsList /Images /Image[@type = 'c3di'] /ResourceMap /Resource[@token ='default'] /Content/@path
|
/ipd/ipdbody /fig/image /@rev
|
È possibile che esistano più elementi /PartsList/Images/Image.
|
IPD-Part-Item-Attribute-Name
|
/PartsList/Items /Item/Metadata /Property /@token
|
/ipd/ipdbody /partlist /partitem /partattribute /@name
|
È possibile che esistano più elementi /PartsList/Items/Item/Metadata/Property.
|
IPD-Part-Item-Attribute-Value
|
/PartsList/Items /Item/Metadata /Property/Value
|
/ipd/ipdbody /partlist /partitem /partattribute
|
È possibile che esistano più elementi /PartsList/Items/Item/Metadata/Property.
|
Di seguito viene riportato un esempio di un file DITA ipd con le abbreviazioni nel contesto e le dichiarazioni XML rimosse. Il testo racchiuso in parentesi graffe { } mostra le posizioni in cui i valori della proprietà dell'elenco parti vengono inseriti nel modello.
<ipd
id="{IPD-Id}"
xml:lang="en"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"urn:ptc:names:arbortext:dita:xsd:techinfo.xsd">
<title>{IPD-Title}</title>
<prolog>
<metadata>
<category>{IPD-Metadata-Source}</category>
<data name="{IPD-Metadata-Property-Name}">{IPD-Metadata-Property-Value}
</data>
</metadata>
</prolog>
<ipdbody>
<fig>
<title>{IPD-Fig-Title}</title>
<image href="{IPD-Fig-Path}"/>
</fig>
<partlist>
<partitem>
<partattribute name="{IPD-Part-Item-Attribute-Name}">
{IPD-Part-Item-Attribute-Value}</partattribute>
<partattribute name="{IPD-Part-Item-Attribute-Name}">
<partattributevalue>{IPD-Part-Item-Attribute-Value}
</partattributevalue>
<partattributevalue>{IPD-Part-Item-Attribute-Value}
</partattributevalue>
</partattribute>
</partitem>
</partlist>
</ipdbody>
</ipd>
Elenco parti Identifier.xml di esempio
Gli esempi riportati di seguito sono estratti dal markup XML generalizzato per un elenco parti.
Il primo estratto mostra il markup XML generalizzato delle proprietà dei metadati dell'elenco parti:
<?xml version="1.0" encoding="UTF-8"?>
<PartsList Version="1.0">
<Metadata source="com.ptc.arbortext.windchill.partlist.PartList">
<Property token="iterationInfo.identifier.iterationId" type=
"java.lang.String"><Value>4</Value>
</Property>
<Property token="ownership.owner.name"><Value/></Property>
<Property token="organizationName" type="java.lang.String">
<Value>Demo Organization</Value></Property>
<Property token="versionIdentifer.versionId" type=
"java.lang.String"><Value>A</Value>
</Property>
<Property token="number" type="java.lang.String">
<Value>0000000005</Value></Property>
<Property token="thePersistInfo.modifyStamp" type="wt.util.
WrappedTimestamp"><Value>2011-09-21 18:37:59.0</Value>
</Property>
<Property token="type" type="java.lang.String">
<Value>Parts List</Value></Property>
<Property token="orgName" type="java.lang.String">
<Value>Demo Organization</Value></Property>
<Property token="version" type="java.lang.String">
<Value>A</Value></Property>
<Property token="iteration" type="java.lang.String">
<Value>4</Value></Property>
<Property token="revision" type="java.lang.String">
<Value>A</Value></Property>
<Property token="creator.name" type="java.lang.String">
<Value>demo</Value></Property>
<Property token="modifiedBy.name"><Value/></Property>
<Property token="versionInfo.identifier.versionId" type=
"java.lang.String"><Value>A</Value></Property>
<Property token="name" type="java.lang.String">
<Value>TRANSISTORS</Value></Property>
<Property token="last_updated" type="wt.util.WrappedTimestamp">
<Value>2011-09-21 18:37:59.0</Value></Property>
<Property token="thePersistInfo.createStamp" type="wt.util.WrappedTimestamp">
<Value>2011-09-21 16:21:10.0</Value></Property>
</Metadata>
Di seguito viene riportato un estratto del documento DITA techinfo risultante in formato IPD che mostra i metadati dell'elenco parti trasformati in prolog:
<ipd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"
xml:lang="en"
xsi:noNamespaceSchemaLocation="urn:ptc:names:arbortext:dita:xsd:techinfo.xsd"
id="d1">
<title>TRANSISTORS</title>
<prolog>
<metadata>
<category>com.ptc.arbortext.windchill.partlist.PartList</category>
<data name="iterationInfo.identifier.iterationId">4</data>
<data name="ownership.owner.name"/>
<data name="organizationName">Demo Organization</data>
<data name="versionIdentifer.versionId">A</data>
<data name="number">0000000005</data>
<data name="thePersistInfo.modifyStamp">2011-09-21 18:37:59.0
</data>
<data name="type">Parts List</data>
<data name="orgName">Demo Organization</data>
<data name="version">A</data>
<data name="iteration">4</data>
<data name="revision">A</data>
<data name="creator.name">demo</data>
<data name="modifiedBy.name"/>
<data name="versionInfo.identifier.versionId">A</data>
<data name="name">TRANSISTORS</data>
<data name="last_updated">2011-09-21 18:37:59.0</data>
<data name="thePersistInfo.createStamp">2011-09-21 16:21:10.0
</data>
</metadata>
</prolog>
L'estratto riportato di seguito mostra il markup XML generalizzato delle proprietà dei metadati delle voci dell'elenco parti:
<Item>
<Metadata source="com.ptc.arbortext.windchill.partlist.PartListItem">
<Property token="instanceIds"><Value/></Property>
<Property token="serviceable" type="java.lang.Boolean">
<Value>true</Value></Property>
<Property token="itemQuantity" type="java.lang.String">
<Value>1</Value></Property>
<Property token="illustrated" type="java.lang.Boolean">
<Value>true</Value></Property>
<Property token="indenture" type="java.lang.Long">
<Value>0</Value></Property>
<Property token="itemSequenceNumber.value"><Value/>
</Property>
<Property token="remarks" type="java.lang.String">
<Value>Transistor</Value></Property>
<Property token="thePersistInfo.modifyStamp" type="wt.util.
WrappedTimestamp"><Value>2011-09-21 18:01:52.0</Value>
</Property>
<Property token="itemNumber" type="java.lang.String">
<Value>3</Value></Property>
<Property token="type" type="java.lang.String">
<Value>Parts List Item</Value></Property>
<Property token="thePersistInfo.createStamp" type="wt.util.
WrappedTimestamp"><Value>2011-09-21 18:01:52.0</Value>
</Property>
</Metadata>
<Metadata source="wt.part.WTPart">
<Property token="objName" type="java.lang.String">
<Value>2SC1846-R</Value></Property>
<Property token="orgid" type="java.lang.String">
<Value>Demo Organization</Value></Property>
<Property token="objNumber" type="java.lang.String">
<Value>0000000026</Value></Property>
<Property token="name" type="java.lang.String">
<Value>2SC1846-R</Value></Property>
<Property token="last_updated" type="wt.util.WrappedTimestamp">
<Value>2011-09-21 16:28:16.0</Value></Property>
<Property token="number" type="java.lang.String">
<Value>0000000026</Value></Property>
<Property token="state.state" type="java.lang.String">
<Value>INWORK</Value></Property>
<Property token="thePersistInfo.modifyStamp" type="wt.util.
WrappedTimestamp"><Value>2011-09-21 16:28:16.0</Value>
</Property>
<Property token="lifeCycleState" type="java.lang.String">
<Value>INWORK</Value></Property>
<Property token="organizationIdentifier" type="java.lang.String">
<Value>Demo Organization</Value></Property>
</Metadata>
</Item>
Di seguito viene riportato un estratto del documento DITA techinfo risultante in formato IPD che mostra i metadati delle voci dell'elenco parti trasformati in elementi partattribute per partitem.
<ipdbody>
<partlist>
<partitem>
<partattribute name="instanceIds"/>
<partattribute name="serviceable">true</partattribute>
<partattribute name="itemQuantity">1</partattribute>
<partattribute name="illustrated">true</partattribute>
<partattribute name="indenture">0</partattribute>
<partattribute name="itemSequenceNumber.value"/>
<partattribute name="remarks">Transistor</partattribute>
<partattribute name="thePersistInfo.modifyStamp">
2011-09-21 18:01:52.0</partattribute>
<partattribute name="itemNumber">3</partattribute>
<partattribute name="type">Parts List Item</partattribute>
<partattribute name="thePersistInfo.createStamp">
2011-09-21 18:01:52.0</partattribute>
<partattribute name="objName">2SC1846-R</partattribute>
<partattribute name="orgid">Demo Organization</partattribute>
<partattribute name="objNumber">0000000026</partattribute>
<partattribute name="name">2SC1846-R</partattribute>
<partattribute name="last_updated">2011-09-21 16:28:16.0
</partattribute>
<partattribute name="number">0000000026</partattribute>
<partattribute name="state.state">INWORK</partattribute>
<partattribute name="thePersistInfo.modifyStamp">
2011-09-21 16:28:16.0</partattribute>
<partattribute name="lifeCycleState">INWORK</partattribute>
<partattribute name="organizationIdentifier">
Demo Organization</partattribute>
</partitem>
</partlist>
</ipdbody>