datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" grammar { default namespace = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" namespace cc = "http://www.xml.gr.jp/xmlns/relaxngcc" namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" namespace local = "" start [cc:runtime-type="org.openhealth.rdf.parser.Runtime"] = doc; nodeElementURIs = element * - (local:*|rdf:RDF|rdf:ID|rdf:about|rdf:bagID|rdf:parseType| rdf:resource|rdf:nodeID|rdf:datatype|rdf:li| rdf:aboutEach|rdf:aboutEachPrefix) propertyElementURIs = element * - (local:*|rdf:RDF|rdf:ID|rdf:about|rdf:bagID|rdf:parseType| rdf:resource|rdf:nodeID|rdf:datatype|rdf:Description| rdf:aboutEach|rdf:aboutEachPrefix) propertyAttributeURIs = attribute * - (local:*|rdf:RDF|rdf:ID|rdf:about|rdf:bagID|rdf:parseType| rdf:resource|rdf:nodeID|rdf:datatype|rdf:li|rdf:Description| rdf:aboutEach|rdf:aboutEachPrefix) xmllang = [$runtime.xmllang = ] attribute xml:lang xmlbase = $runtime.xmlbase = ] attribute xml:base doc = RDF RDF = element rdf:RDF { xmllang?,xmlbase?, nodeElementList* } nodeElementList = nodeElement* nodeElement = nodeElementURIs { [ if ($runtime.parseMode == STATEMENT_OBJECT) { $runtime.statement( $runtime.subject, $runtime.predicate, uri + localName, $runtime.xmlbase); } else if ($runtime.parseMode == STATEMENT_COLLECTION) { $runtime.statement( $runtime.subject, RDF_FIRST, uri + localName, $runtime.xmlbase); }; $runtime.pushStack(); if (uri.equals(RDF_NS) & localName.equals("Description")) { } else $runtime.type = uri + localName; ] (idAttr|nodeIdAttr|aboutAttr)? [if ($runtime.subject == null) $runtime.subject = $runtime.makeBlankId(); ], bagIdAttr? xmllang?,xmlbase?, [ if ($runtime.type) $runtime.statement( $runtime.subject, RDF_TYPE, $runtime.type, $runtime.xmlbase); ] propertyAttr*, propertyElt* [ $runtime.popStack(); ] } propertyElt = (resourcePropertyElt| literalPropertyElt| parseTypeLiteralPropertyElt| parseTypeResourcePropertyElt| parseTypeCollectionPropertyElt| parseTypeOtherPropertyElt| emptyPropertyElt) resourcePropertyElt = propertyElementURIs { [$runtime.predicate = uri + localName;] idAttr?, xmllang?,xmlbase?, [ $runtime.parseMode = STATEMENT_OBJECT;] nodeElement } String lit = $runtime.literalStatement( $runtime.subject, uri+localName, lit, $runtime.datatype, $runtime.xmllang, $runtime.xmlbase); $runtime.redirectSubtree(literalHandler,uri,localName,qname); String blankId = $runtime.createBlankId(); $runtime.predicate = uri + localName; $runtime.object = blankId; $runtime.statement( $runtime.subject, $runtime.predicate, $runtime.object, $runtime.xmlbase); $runtime.pushStack(); $runtime.subject = blankId; $runtime.popStack(); String blankId = $runtime.createBlankId(); $runtime.object = blankId; $runtime.statement( $runtime.subject, uri + localName, blankId, $runtime.xmlbase); $runtime.pushStack(); $runtime.subject = blankId; $runtime.popStack(); $runtime.parseMode = STATEMENT_COLLECTION; String blankId = $runtime.createBlankId(); $runtime.statement( $runtime.subject, RDF_REST, blankId, $runtime.xmlbase); $runtime.subject = blankId(); - - - - - - - $runtime.predicate = uri + localName; String id = $runtime.subject = $runtime.makeURI(id); $runtime.object = $runtime.statement( $runtime.subject, $runtime.predicate, $runtime.object, $runtime.xmlbase); $runtime.subject = - String lit = $runtime.literalStatement( $runtime.subject, $runtime.predicate, lit, null, $runtime.xmllang, $runtime.xmlbase); $runtime.object = $runtime.statement( $runtime.subject, $runtime.predicate, $runtime.object, $runtime.xmlbase); $runtime.datatype= Literal Resource Collection - - - - - - - -