Method | Description | |
---|---|---|
AddChildNode ( |
Adds a child node.
|
|
AddQualifierNode ( |
Adds a qualifier node.
|
|
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.
|
|
GetRdfTermKind ( |
Determines the ID for a certain RDF Term. Arranged to hopefully minimize the parse time for large XMP.
|
|
IsCoreSyntaxTerm ( int term ) : bool |
7.2.2 coreSyntaxTerms
|
|
IsOldTerm ( int term ) : bool |
7.2.4 oldTerms
|
|
IsPropertyElementName ( int term ) : bool |
7.2.6 propertyElementURIs anyURI - ( coreSyntaxTerms | rdf:Description | oldTerms )
|
|
IsWhitespaceNode ( |
Checks if the node is a white space.
|
|
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.
|
|
RdfEmptyPropertyElement ( |
7.2.21 emptyPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr* ) ) end-element()
|
|
RdfLiteralPropertyElement ( |
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.
|
|
RdfNodeElement ( |
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.
|
|
RdfNodeElementAttrs ( |
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.
|
|
RdfNodeElementList ( |
7.2.10 nodeElementList
|
|
RdfParseTypeCollectionPropertyElement ( ) : void |
7.2.19 parseTypeCollectionPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseCollection ) ) nodeElementList end-element()
|
|
RdfParseTypeLiteralPropertyElement ( ) : void |
7.2.17 parseTypeLiteralPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseLiteral ) ) literal end-element()
|
|
RdfParseTypeOtherPropertyElement ( ) : void |
7.2.20 parseTypeOtherPropertyElt start-element ( URI == propertyElementURIs, attributes == set ( idAttr?, parseOther ) ) propertyEltList end-element()
|
|
RdfParseTypeResourcePropertyElement ( |
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.
|
|
RdfPropertyElement ( |
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.
|
|
RdfPropertyElementList ( |
7.2.13 propertyEltList ws* ( propertyElt ws* )*
|
|
RdfRdf ( |
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.
|
|
RdfResourcePropertyElement ( |
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.
|