Package com.itextpdf.xmp.impl
Class ParseRDF
java.lang.Object
com.itextpdf.xmp.impl.ParseRDF
Parser for "normal" XML serialisation of RDF.
- Since:
- 14.07.2006
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
this prefix is used for default namespacesstatic final int
static final int
Start of oldTerms.static final int
static final int
End of oldTerms.static final int
End of coreSyntaxTermsstatic final int
Start of additions for syntax Terms.static final int
static final int
static final int
! Yes, the syntax terms include the core terms.static final int
static final int
static final int
static final int
static final int
End of of additions for syntaxTerms.static final int
static final int
static final int
static final int
Start of coreSyntaxTerms.static final int
Fields inherited from interface com.itextpdf.xmp.XMPConst
ARRAY_ITEM_NAME, ARRAY_LAST_ITEM, FALSESTR, NS_ADOBESTOCKPHOTO, NS_ASF, NS_BWF, NS_CAMERARAW, NS_CREATOR_ATOM, NS_DC, NS_DC_DEPRECATED, NS_DICOM, NS_DM, NS_EXIF, NS_EXIF_AUX, NS_EXIFX, NS_IPTCCORE, NS_IPTCEXT, NS_IX, NS_JP2K, NS_JPEG, NS_PDF, NS_PDFA_EXTENSION, NS_PDFA_FIELD, NS_PDFA_ID, NS_PDFA_PROPERTY, NS_PDFA_SCHEMA, NS_PDFA_TYPE, NS_PDFUA_ID, NS_PDFX, NS_PDFX_ID, NS_PHOTOSHOP, NS_PLUS, NS_PNG, NS_PSALBUM, NS_RDF, NS_RIFFINFO, NS_SCRIPT, NS_SWF, NS_TIFF, NS_TRANSIENT, NS_TXMP, NS_WAV, NS_X, NS_XML, NS_XMP, NS_XMP_BJ, NS_XMP_MM, NS_XMP_NOTE, NS_XMP_RIGHTS, RDF_TYPE, TAG_XAPMETA, TAG_XMPMETA, TRUESTR, TYPE_DIMENSIONS, TYPE_FONT, TYPE_GRAPHICS, TYPE_IDENTIFIERQUAL, TYPE_IMAGE, TYPE_MANIFESTITEM, TYPE_PAGEDFILE, TYPE_RESOURCEEVENT, TYPE_RESOURCEREF, TYPE_ST_JOB, TYPE_ST_VERSION, TYPE_TEXT, X_DEFAULT, XML_LANG, XMP_PI
Fields inherited from interface com.itextpdf.xmp.XMPError
BADINDEX, BADOPTIONS, BADPARAM, BADRDF, BADSCHEMA, BADSERIALIZE, BADSTREAM, BADVALUE, BADXML, BADXMP, BADXPATH, INTERNALFAILURE, UNKNOWN
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static XMPNode
addChildNode
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, String value, boolean isTopLevel) Adds a child node.private static XMPNode
addQualifierNode
(XMPNode xmpParent, String name, String value) Adds a qualifier node.private static void
fixupQualifiedNode
(XMPNode xmpParent) The parent is an RDF pseudo-struct containing an rdf:value field.private static int
getRDFTermKind
(Node node) Determines the ID for a certain RDF Term.private static boolean
isCoreSyntaxTerm
(int term) 7.2.2 coreSyntaxTerms
rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | rdf:datatypeprivate static boolean
isOldTerm
(int term) 7.2.4 oldTerms
rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagIDprivate static boolean
isPropertyElementName
(int term) 7.2.6 propertyElementURIs anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms )private static boolean
isWhitespaceNode
(Node node) Checks if the node is a white space.(package private) static XMPMetaImpl
The main parsing method.private static void
rdf_EmptyPropertyElement
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) 7.2.21 emptyPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) end-element() invalid input: '<'ns:Prop1/> invalid input: '<'ns:Prop2 rdf:resource="http: *www.adobe.com/"/> invalid input: '<'ns:Prop3 rdf:value="..." ns:Qual="..."/> invalid input: '<'ns:Prop4 ns:Field1="..." ns:Field2="..."/> An emptyPropertyElt is an element with no contained content, just a possibly empty set of attributes.private static void
rdf_LiteralPropertyElement
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) 7.2.16 literalPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) text() end-element() Add a leaf node with the text value and qualifiers for the attributes.private static void
rdf_NodeElement
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) 7.2.5 nodeElementURIs anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) 7.2.11 nodeElement start-element ( URI == nodeElementURIs, attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) propertyEltList end-element() A node element URI is rdf:Description or anything else that is not an RDF term.private static void
rdf_NodeElementAttrs
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) 7.2.7 propertyAttributeURIs anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) 7.2.11 nodeElement start-element ( URI == nodeElementURIs, attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) propertyEltList end-element() Process the attribute list for an RDF node element.private static void
rdf_NodeElementList
(XMPMetaImpl xmp, XMPNode xmpParent, Node rdfRdfNode) 7.2.10 nodeElementList
ws* ( nodeElement ws* )* Note: this method is only called from the rdf:RDF-node (top level)private static void
7.2.19 parseTypeCollectionPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) nodeElementList end-element()private static void
7.2.17 parseTypeLiteralPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) literal end-element()private static void
7.2.20 parseTypeOtherPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) propertyEltList end-element()private static void
rdf_ParseTypeResourcePropertyElement
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) 7.2.18 parseTypeResourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) propertyEltList end-element() Add a new struct node with a qualifier for the possible rdf:ID attribute.private static void
rdf_PropertyElement
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) 7.2.14 propertyElt resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | parseTypeOtherPropertyElt | emptyPropertyElt 7.2.15 resourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) ws* nodeElement ws* end-element() 7.2.16 literalPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) text() end-element() 7.2.17 parseTypeLiteralPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) literal end-element() 7.2.18 parseTypeResourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) propertyEltList end-element() 7.2.19 parseTypeCollectionPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) nodeElementList end-element() 7.2.20 parseTypeOtherPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) propertyEltList end-element() 7.2.21 emptyPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) end-element() The various property element forms are not distinguished by the XML element name, but by their attributes for the most part.private static void
rdf_PropertyElementList
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlParent, boolean isTopLevel) 7.2.13 propertyEltList ws* ( propertyElt ws* )*(package private) static void
rdf_RDF
(XMPMetaImpl xmp, Node rdfRdfNode) Each of these parsing methods is responsible for recognizing an RDF syntax production and adding the appropriate structure to the XMP tree.private static void
rdf_ResourcePropertyElement
(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) 7.2.15 resourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) ws* nodeElement ws* end-element() This handles structs using an rdf:Description node, arrays using rdf:Bag/Seq/Alt, and typedNodes.
-
Field Details
-
RDFTERM_OTHER
public static final int RDFTERM_OTHER- See Also:
-
RDFTERM_RDF
public static final int RDFTERM_RDFStart of coreSyntaxTerms.- See Also:
-
RDFTERM_ID
public static final int RDFTERM_ID- See Also:
-
RDFTERM_ABOUT
public static final int RDFTERM_ABOUT- See Also:
-
RDFTERM_PARSE_TYPE
public static final int RDFTERM_PARSE_TYPE- See Also:
-
RDFTERM_RESOURCE
public static final int RDFTERM_RESOURCE- See Also:
-
RDFTERM_NODE_ID
public static final int RDFTERM_NODE_ID- See Also:
-
RDFTERM_DATATYPE
public static final int RDFTERM_DATATYPEEnd of coreSyntaxTerms- See Also:
-
RDFTERM_DESCRIPTION
public static final int RDFTERM_DESCRIPTIONStart of additions for syntax Terms.- See Also:
-
RDFTERM_LI
public static final int RDFTERM_LIEnd of of additions for syntaxTerms.- See Also:
-
RDFTERM_ABOUT_EACH
public static final int RDFTERM_ABOUT_EACHStart of oldTerms.- See Also:
-
RDFTERM_ABOUT_EACH_PREFIX
public static final int RDFTERM_ABOUT_EACH_PREFIX- See Also:
-
RDFTERM_BAG_ID
public static final int RDFTERM_BAG_IDEnd of oldTerms.- See Also:
-
RDFTERM_FIRST_CORE
public static final int RDFTERM_FIRST_CORE- See Also:
-
RDFTERM_LAST_CORE
public static final int RDFTERM_LAST_CORE- See Also:
-
RDFTERM_FIRST_SYNTAX
public static final int RDFTERM_FIRST_SYNTAX! Yes, the syntax terms include the core terms.- See Also:
-
RDFTERM_LAST_SYNTAX
public static final int RDFTERM_LAST_SYNTAX- See Also:
-
RDFTERM_FIRST_OLD
public static final int RDFTERM_FIRST_OLD- See Also:
-
RDFTERM_LAST_OLD
public static final int RDFTERM_LAST_OLD- See Also:
-
DEFAULT_PREFIX
this prefix is used for default namespaces- See Also:
-
-
Constructor Details
-
ParseRDF
public ParseRDF()
-
-
Method Details
-
parse
The main parsing method. The XML tree is walked through from the root node and and XMP tree is created. This is a raw parse, the normalisation of the XMP tree happens outside.- Parameters:
xmlRoot
- the XML root node- Returns:
- Returns an XMP metadata object (not normalized)
- Throws:
XMPException
- Occurs if the parsing fails for any reason.
-
rdf_RDF
Each of these parsing methods is responsible for recognizing an RDF syntax production and adding the appropriate structure to the XMP tree. They simply return for success, failures will throw an exception.- Parameters:
xmp
- the xmp metadata object that is generatedrdfRdfNode
- the top-level xml node- Throws:
XMPException
- thown on parsing errors
-
rdf_NodeElementList
private static void rdf_NodeElementList(XMPMetaImpl xmp, XMPNode xmpParent, Node rdfRdfNode) throws XMPException 7.2.10 nodeElementList
ws* ( nodeElement ws* )* Note: this method is only called from the rdf:RDF-node (top level)- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp noderdfRdfNode
- the top-level xml node- Throws:
XMPException
- thown on parsing errors
-
rdf_NodeElement
private static void rdf_NodeElement(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) throws XMPException 7.2.5 nodeElementURIs anyURI - ( coreSyntaxTerms | rdf:li | oldTerms ) 7.2.11 nodeElement start-element ( URI == nodeElementURIs, attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) propertyEltList end-element() A node element URI is rdf:Description or anything else that is not an RDF term.- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
rdf_NodeElementAttrs
private static void rdf_NodeElementAttrs(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) throws XMPException 7.2.7 propertyAttributeURIs anyURI - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) 7.2.11 nodeElement start-element ( URI == nodeElementURIs, attributes == set ( ( idAttr | nodeIdAttr | aboutAttr )?, propertyAttr* ) ) propertyEltList end-element() Process the attribute list for an RDF node element. A property attribute URI is anything other than an RDF term. The rdf:ID and rdf:nodeID attributes are simply ignored, as are rdf:about attributes on inner nodes.- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
rdf_PropertyElementList
private static void rdf_PropertyElementList(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlParent, boolean isTopLevel) throws XMPException 7.2.13 propertyEltList ws* ( propertyElt ws* )*- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlParent
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
rdf_PropertyElement
private static void rdf_PropertyElement(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) throws XMPException 7.2.14 propertyElt resourcePropertyElt | literalPropertyElt | parseTypeLiteralPropertyElt | parseTypeResourcePropertyElt | parseTypeCollectionPropertyElt | parseTypeOtherPropertyElt | emptyPropertyElt 7.2.15 resourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) ws* nodeElement ws* end-element() 7.2.16 literalPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) text() end-element() 7.2.17 parseTypeLiteralPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) literal end-element() 7.2.18 parseTypeResourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) propertyEltList end-element() 7.2.19 parseTypeCollectionPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) nodeElementList end-element() 7.2.20 parseTypeOtherPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) propertyEltList end-element() 7.2.21 emptyPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) end-element() The various property element forms are not distinguished by the XML element name, but by their attributes for the most part. The exceptions are resourcePropertyElt and literalPropertyElt. They are distinguished by their XML element content. NOTE: The RDF syntax does not explicitly include the xml:lang attribute although it can appear in many of these. We have to allow for it in the attibute counts below.- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
rdf_ResourcePropertyElement
private static void rdf_ResourcePropertyElement(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) throws XMPException 7.2.15 resourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr? ) ) ws* nodeElement ws* end-element() This handles structs using an rdf:Description node, arrays using rdf:Bag/Seq/Alt, and typedNodes. It also catches and cleans up qualified properties written with rdf:Description and rdf:value.- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
rdf_LiteralPropertyElement
private static void rdf_LiteralPropertyElement(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) throws XMPException 7.2.16 literalPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, datatypeAttr?) ) text() end-element() Add a leaf node with the text value and qualifiers for the attributes.- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
rdf_ParseTypeLiteralPropertyElement
7.2.17 parseTypeLiteralPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) literal end-element()- Throws:
XMPException
- thown on parsing errors
-
rdf_ParseTypeResourcePropertyElement
private static void rdf_ParseTypeResourcePropertyElement(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) throws XMPException 7.2.18 parseTypeResourcePropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseResource ) ) propertyEltList end-element() Add a new struct node with a qualifier for the possible rdf:ID attribute. Then process the XML child nodes to get the struct fields.- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
rdf_ParseTypeCollectionPropertyElement
7.2.19 parseTypeCollectionPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) nodeElementList end-element()- Throws:
XMPException
- thown on parsing errors
-
rdf_ParseTypeOtherPropertyElement
7.2.20 parseTypeOtherPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) propertyEltList end-element()- Throws:
XMPException
- thown on parsing errors
-
rdf_EmptyPropertyElement
private static void rdf_EmptyPropertyElement(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, boolean isTopLevel) throws XMPException 7.2.21 emptyPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) end-element() invalid input: '<'ns:Prop1/> invalid input: '<'ns:Prop2 rdf:resource="http: *www.adobe.com/"/> invalid input: '<'ns:Prop3 rdf:value="..." ns:Qual="..."/> invalid input: '<'ns:Prop4 ns:Field1="..." ns:Field2="..."/> An emptyPropertyElt is an element with no contained content, just a possibly empty set of attributes. An emptyPropertyElt can represent three special cases of simple XMP properties: a simple property with an empty value (ns:Prop1), a simple property whose value is a URI (ns:Prop2), or a simple property with simple qualifiers (ns:Prop3). An emptyPropertyElt can also represent an XMP struct whose fields are all simple and unqualified (ns:Prop4). It is an error to use both rdf:value and rdf:resource - that can lead to invalid RDF in the verbose form written using a literalPropertyElt. The XMP mapping for an emptyPropertyElt is a bit different from generic RDF, partly for design reasons and partly for historical reasons. The XMP mapping rules are:- If there is an rdf:value attribute then this is a simple property with a text value. All other attributes are qualifiers.
- If there is an rdf:resource attribute then this is a simple property with a URI value. All other attributes are qualifiers.
- If there are no attributes other than xml:lang, rdf:ID, or rdf:nodeID then this is a simple property with an empty value.
- Otherwise this is a struct, the attributes other than xml:lang, rdf:ID, or rdf:nodeID are fields.
- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodeisTopLevel
- Flag if the node is a top-level node- Throws:
XMPException
- thown on parsing errors
-
addChildNode
private static XMPNode addChildNode(XMPMetaImpl xmp, XMPNode xmpParent, Node xmlNode, String value, boolean isTopLevel) throws XMPException Adds a child node.- Parameters:
xmp
- the xmp metadata object that is generatedxmpParent
- the parent xmp nodexmlNode
- the currently processed XML nodevalue
- Node valueisTopLevel
- Flag if the node is a top-level node- Returns:
- Returns the newly created child node.
- Throws:
XMPException
- thown on parsing errors
-
addQualifierNode
private static XMPNode addQualifierNode(XMPNode xmpParent, String name, String value) throws XMPException Adds a qualifier node.- Parameters:
xmpParent
- the parent xmp nodename
- the name of the qualifier which has to be QName including the default prefixvalue
- the value of the qualifier- Returns:
- Returns the newly created child node.
- Throws:
XMPException
- thown on parsing errors
-
fixupQualifiedNode
The parent is an RDF pseudo-struct containing an rdf:value field. Fix the XMP data model. The rdf:value node must be the first child, the other children are qualifiers. The form, value, and children of the rdf:value node are the real ones. The rdf:value node's qualifiers must be added to the others.- Parameters:
xmpParent
- the parent xmp node- Throws:
XMPException
- thown on parsing errors
-
isWhitespaceNode
Checks if the node is a white space.- Parameters:
node
- an XML-node- Returns:
- Returns whether the node is a whitespace node, i.e. a text node that contains only whitespaces.
-
isPropertyElementName
private static boolean isPropertyElementName(int term) 7.2.6 propertyElementURIs anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms )- Parameters:
term
- the term id- Returns:
- Return true if the term is a property element name.
-
isOldTerm
private static boolean isOldTerm(int term) 7.2.4 oldTerms
rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID- Parameters:
term
- the term id- Returns:
- Returns true if the term is an old term.
-
isCoreSyntaxTerm
private static boolean isCoreSyntaxTerm(int term) 7.2.2 coreSyntaxTerms
rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | rdf:datatype- Parameters:
term
- the term id- Returns:
- Return true if the term is a core syntax term
-
getRDFTermKind
Determines the ID for a certain RDF Term. Arranged to hopefully minimize the parse time for large XMP.- Parameters:
node
- an XML node- Returns:
- Returns the term ID.
-