Interface Classification
- All Superinterfaces:
ExtensibleObject
,RegistryObject
Figure 1 shows how a Classification classifies a RegistryObject using a ClassificationScheme.
Figure 1. Using a ClassificationScheme to Classify an Object
Internal vs. External Taxonomies
A taxonomy may be represented within a Jakarta XML Registries provider in one of the following ways:- The taxonomy elements and their structural relationship with each other are available within the Jakarta XML Registries provider. This case is referred to as Internal Taxonomy since the structure of the taxonomy is available internal to the Jakarta XML Registries provider.
- The taxonomy elements and their structural relationship with each other is represented somewhere external to the Jakarta XML Registries provider. This case is referred to as External Taxonomy since the structure of the taxonomy is not available to the Jakarta XML Registries provider.
Internal vs. External Classifications
The Classification interface allows the classification of RegistryObjects using a ClassificationScheme whether the ClassificationScheme represents an internal taxonomy or an external taxonomy. When a Classification instance uses a ClassificationScheme representing an internal taxonomy then it is referred to as an internal Classification. When a Classification instance uses a ClassificationScheme representing an external taxonomy then it is referred to as an external Classification.Internal Classification
When a Classification instance is used to classify a RegistryObject using an internal taxonomy it is referred to as an internal Classification. A client must call the setConcept method on a Classification and define a reference to a Concept instance from the Classification instance in order for that Classification to use an internal taxonomy. It is not necessary for the client to call setClassificationScheme for internal Classifications since the classifying Concept already knows it root ClassificationScheme.
Example of Internal Classification
Figure 2 shows an example of internal classification using a Concept to represent a taxonomy element. The example classifies an Organization instance as a Book Publisher using the NAICS standard taxonomy available as an internal taxonomy. Note that the figure does not show all the Concepts between the Book Publishers node and the NAICS ClassificationScheme to save space. Had they been there they would have been linked together by the parent attribute of each Concept.Figure 2. Example of Internal Classification
External Classification
When a Classification instance is used to classify a RegistryObject using an external taxonomy it is referred to as an external Classification. A client must call the setValue method on a Classification and define a unique value that logically represents a taxonomy element within the taxonomy whose structure is defined externally. It is necessary for the client call setClassificationScheme for external Classifications since there is no other way to infer the ClassificationScheme that represents the external taxonomy.Example of External Classification
Figure 3 shows an example of external classification. The example uses the same scenario where a Classification classifies an Organization instance as a Book Publisher using the NAICS standard taxonomy. However, this time the structure of the NAICS taxonomy is not available internally to the Jakarta XML Registries provider and consequently there is no Concept instance. Instead, the name and value attributes of the Classification are used to pinpoint the Book Publisher's taxonomy element. Note that name is optional but value is required.Figure 3. Example of External Classification
An Example of Multiple Classifications
The next example shows how a RegistryObject may be classified by multiple classification schemes. In this example, two internal ClassificationSchemes named Industry and Geography are used to classify several Organization RegistryObjects by their industry and Geography. In Figure 4, in order to save space and improve readability, the Classification instances are not explicitly shown but are implied as associations between the RegistryObjects (shaded leaf node) and the associated Concepts.Figure 4. Example of Multiple Classifications
- Author:
- Farrukh S. Najmi
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionGets the ClassificationScheme that is used in classifying the object.Gets the Object that is being classified.Gets the Concept that is classifying the object.getValue()
Gets the taxonomy value for this Classification.boolean
Returns true if this is an external classification.void
setClassificationScheme
(ClassificationScheme classificationScheme) Sets the ClassificationScheme for this external classification.void
setClassifiedObject
(RegistryObject classifiedObject) Sets the object that is being classified.void
setConcept
(Concept concept) Sets the concept for this internal classification.void
Sets the taxonomy value for this external Classification.Methods inherited from interface javax.xml.registry.infomodel.ExtensibleObject
addSlot, addSlots, getSlot, getSlots, removeSlot, removeSlots
Methods inherited from interface javax.xml.registry.infomodel.RegistryObject
addAssociation, addAssociations, addClassification, addClassifications, addExternalIdentifier, addExternalIdentifiers, addExternalLink, addExternalLinks, getAssociatedObjects, getAssociations, getAuditTrail, getClassifications, getDescription, getExternalIdentifiers, getExternalLinks, getKey, getLifeCycleManager, getName, getObjectType, getRegistryPackages, getSubmittingOrganization, removeAssociation, removeAssociations, removeClassification, removeClassifications, removeExternalIdentifier, removeExternalIdentifiers, removeExternalLink, removeExternalLinks, setAssociations, setClassifications, setDescription, setExternalIdentifiers, setExternalLinks, setKey, setName, toXML
-
Method Details
-
getConcept
Gets the Concept that is classifying the object.- Capability Level: 0
- Returns:
- the Concept that is classifying the classified object. null if this is a external Classification
- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-
setConcept
Sets the concept for this internal classification.This method should be used mutually exclusively with the setClassificationScheme method.
- Capability Level: 0
- Parameters:
concept
- the Concept that is classifying the classified object.- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-
getClassificationScheme
Gets the ClassificationScheme that is used in classifying the object. If the Classification is an internal Classification then this method should return the value returned by calling the getClassificationScheme method on the Concept representing the taxonomy element.- Capability Level: 0
- Returns:
- the ClassificationScheme used by this Classification
- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error- See Also:
-
setClassificationScheme
Sets the ClassificationScheme for this external classification.If this method is called then you must also call setValue method. This method should be used mutually exclusively with the setConcept method.
- Capability Level: 0
- Parameters:
classificationScheme
- the ClassificationScheme used by this Classification- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-
getValue
Gets the taxonomy value for this Classification.- Capability Level: 0
- Returns:
- the value of the taxonomy element if external Classification; the value of the Concept representing the taxonomy element if internal Classification
- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-
setValue
Sets the taxonomy value for this external Classification.- Capability Level: 0
- Parameters:
value
- the taxonomy value used by this external Classification- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-
getClassifiedObject
Gets the Object that is being classified.- Capability Level: 0
- Returns:
- the RegistryObject that is classified by this Classification
- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-
setClassifiedObject
Sets the object that is being classified.- Capability Level: 0
- Parameters:
classifiedObject
- the RegistryObject that is classified by this Classification- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-
isExternal
Returns true if this is an external classification.- Capability Level: 0
- Returns:
true
if this is an external Classification;false
otherwise- Throws:
JAXRException
- If the Jakarta XML Registries provider encounters an internal error
-