XMP Specification September 2005 29 XMP Storage Model Serializing XMP 3 alternative ways to represent the same information.) All XMP is valid RDF, but a number of RDF features are not valid XMP, in particular: The rdf:RDF element is required by XMP (it is optional in RDF). The elements immediately within rdf:RDF must be rdf:Description elements. The rdf:ID and rdf:nodeID attributes are ignored. The rdf:aboutEach or rdf:aboutEachPrefix attributes are not supported, the entire rdf:Description element is ignored. The rdf:parseType='Literal' attribute is not supported. Top-level RDF typed nodes are not supported. Validation If DTD or XML Schema validation is required, be aware that RDF provides many equivalent ways to express the same model. Also, the open nature of XMP means that it is in general not possible to predict or desirable to constrain the allowable set of XML elements and attributes. There appears to be no way to write a DTD that allows arbitrary elements and attributes. Even use of ANY requires declared child elements (see validity constraint #4 in section 3 of the XML specification). The recommended approach to placing XMP in XML using DTD validation is to wrap the XMP Packet in a CDATA section. This requires escaping any use of “]]” in the packet. rdf:about Attribute All rdf:Description elements within an rdf:RDF element must have the same value for their rdf:about attributes. Namespace URI termination The formal definition of RDF transforms the XML representation into “triples” in a manner that catenates XML namespace URI strings with the local part of XML element and attribute names. This can lead to ambiguities if the URI does not end in separator such as ‘/’ or ‘#’. This is not a problem for Adobe software, which does not utilize the triple representation. But it could be a problem in other implementations of XMP, or if the RDF form of XMP were fed to a traditional RDF processor. Here is an artificial example of RDF that produces ambiguities in the triples: rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:Description rdf:about="bogus:example" xmlns:ns1="bogus:namespace" xmlns:ns2="bogus:name" ns1:shipvalue of ns1:ship/ns1:ship ns2:spaceshipvalue of ns2:spaceship/ns2:spaceship /rdf:Description /rdf:RDF
Previous Page Next Page