The DITA Publishing Extensions provide an example of how DITA XML element and attribute data can be mapped to the FileNet P8 metadata model. The ability to extract and store this data in metadata provides a powerful query capability and supports the reuse of DITA components.
The DITA standard defines basic information types such as topic, concept, task and reference, which all share a common header information section and prolog section. A subset of this header information is added to the metadata:
A subset of the available prolog information is added to the metadata:
Display Name
<Release> DITA Publishing Extensions
XML Script Name
PublishingExtensions.xml
Installation Type
Recommended
The standard DITA types, topic, task, concept, reference and glossentry, all share the same header and prolog info. FileNet P8 includes a base DITA type class named DitaBase that contains this common metadata. Subclasses of the DitaBase document class, which inherit its metadata, represent standard DITA types; DitaTopic, DitaConcept, DitaTask, DitaReference and DitaGlossEntry. These subclasses do not have any additional custom properties but are useful as FileNet P8 supports queries based on specific document class.
The FileNet P8 AddOn also models the DITA types ditamap and bookmap. The document class DitaMap is used to represent the ditamap type in a FileNet P8 repository while the DitaBookMap document class is used for the bookmap type.
The FileNet P8 AddOn has a document class defined to represent ditaval content. This document class, DitaVal, can be used to filter DITA output. This class has no additional custom properties but is used to support queries for ditaval content.
Example FileNet P8 Documents - Content Engine Class Inheritance Hierarchy
Property Template | Type | Description |
---|---|---|
DitaId | String | A unique id for a DITA component.
NOTE This and other metadata have been given a “Dita” prefix to avoid collision with FileNet system property names. |
DitaTitle | String |
This is an alternative title for the component. This title provides the title used for navigation windows, table of contents, related links and search results (if provided). XPATH: topic/title NOTE DitaTitle is the title given the content of a DITA component and not the file system name of the DITA component. The FileNet P8 property DocumentTitle should be used to store the DITA component file name. |
DitaSearchTitle | String |
This is an alternative title for the component. This title provides the title returned in search result summaries. XPATH: topic/titlealts/searchtitle |
DitaKeywords | Multi-Value String |
Multiple keywords are allowed in a DITA component so they are stored in a multi-value string property. XPATH: topic/prolog/metadata/keyword NOTE FileNet P8 supports queries for an individual string within a multi-value string property. |
DitaAuthors | Multi-Value String |
Multiple authors are allowed in a DITA component so they are stored in a multi-value string property. The names of the author are stored in the property. Additional author information available, type, is not stored. XPATH: topic/prolog/author |
DitaAudiences | Multi-Value String |
Multiple audiences are allowed in a DITA component so they are stored in a multi-value string property. The names of the audiences are stored in the property. XPATH: topic/prolog/metadata/audience |
DitaCategories | Multi-Value String |
Multiple categories are allowed in a DITA component so they are stored in a multi-value string property. XPATH: topic/prolog/metadata/category |
DitaProdNames | Multi-Value String |
Specify the name of the product described in the data. XPATH: topic/prolog/metadata/prodinfo/prodname |
DitaBrands | Multi-Value String |
Indicate the manufacturer or brand associated with the product. XPATH: topic/prolog/metadata/prodinfo/brand |
DitaPlatforms | Multi-Value String |
Describes the hardware or software platform associated with the product. XPATH: topic/prolog/metadata/prodinfo/platform |
Property Template |
Type |
Description |
DitaId |
String |
A unique id for a DITA component. NOTE This and other metadata have been given a “Dita” prefix to avoid collision with FileNet system property names. |
DitaTitle |
String |
This is an alternative title for the component. This title provides the title used for navigation windows, table of contents, related links and search results (if provided). XPATH: map/title NOTE DitaTitle is the title given the content of a DITA component and not the file system name of the DITA component. The FileNet P8 property DocumentTitle should be used to store the DITA component file name. |
Property Template |
Type |
Description |
DitaSearchTitle |
String |
This is an alternative title for the component. This title provides the title returned in search result summaries. XPATH: bookmap/titlealts/searchtitle |
DitaKeywords |
Multi-Value String |
Multiple keywords are allowed in a DITA component so they are stored in a multi-value string property. XPATH: //keyword NOTE FileNet P8 supports queries for an individual string within a multi-value string property. |
DitaAuthors |
Multi-Value String |
Multiple authors are allowed in a DITA component so they are stored in a multi-value string property. The names of the author are stored in the property. Additional author information available, type, is not stored. XPATH: //author |
DitaAudiences |
Multi-Value String |
Multiple audiences are allowed in a DITA component so they are stored in a multi-value string property. The names of the audiences are stored in the property. XPATH: //audience/@type |
DitaCategories |
Multi-Value String |
Multiple categories are allowed in a DITA component so they are stored in a multi-value string property. XPATH: //category |
DitaProdNames |
Multi-Value String |
Specify the name of the product described in the data. XPATH: //prodname |
DitaBrands |
Multi-Value String |
Indicate the manufacturer or brand associated with the product. XPATH: //brand |
DitaPlatforms |
Multi-Value String |
Describes the hardware or software platform associated with the product. XPATH: //platform |
DitaPublishers |
Multi-Value String |
Describes name of the person, or organization responsible for making the content available. XPATH: //publisher |
FileNet P8 supports compound document-style relationships via the ComponentRelationship class. The class enables:
FileNet P8 Compound Document Structure - Content Engine Object Instance Relationships
In the diagram, each box represents an instance of an object persisted in the FileNet P8 Content Engine. The ComponentRelationship objects hold references to a parent document and a child document. The child document reference can be null if there is no child document version that matches the binding rule of the ComponentRelationship object.
DITA supports reuse at the Topic, Map and conref level. This can be modeled in FileNet P8 by defining subclasses of ComponentRelationship:
DitaTopicref classes are used to model topicref relationships between objects.
DitaMapref classes are used to model submap relationships between objects.
DitaConref classes are used to model conref relationships between objects.
DitaLinkref classes are used to model link relationships between objects.
DitaXref classes are used to model xref relationships between objects.
DitaImageref classes are used to model image relationships between objects
The DitaBaseref class is a base class for all DITA relationship classes and can be used in queries to query for all relationship types.
A parent component can find all direct child components with a single API call off the Document class. One version of the API call returns the ComponentRelationship objects and another version of the call returns the child objects themselves.
A child component can find all parents that reference it with a single API call off the Document class. (Depending on the security of the user accessing the child object, the user might not have view rights on the parent object.) One version of the API returns the ComponentRelationship objects and another version returns the parent objects themselves.
By having distinct classes for the relationships, topicref, conref, link, xref and submap, you can create queries limited to objects of those classes. For example, a query from a child component that finds all parent objects that reference a specific conref via the DitaElementId.
In a similar manner, you can query for all parent objects that use a topicref to reference a child component.
Example FileNet P8 Component Relationships - Content Engine Class Inheritance Hierarchy
Property |
Type |
Description |
DitaElementId |
String |
Element id portion of conref attribute. |
Property |
Type |
Description |
DitaId |
String |
A unique id for a DITA component. NOTE This is very useful if a FileNet P8 document contains multiple topics. |
Property |
Type |
Description |
DitaId |
String |
A unique id for a DITA component. |
Property |
Type |
Description |
|
|
No custom properties on this class |
Property |
Type |
Description |
|
|
No custom properties on this class |
Property |
Type |
Description |
|
|
No custom properties on this class |