Problem
The grammar text states that all rdf:parseType values other than "Resource", "Literal", "Collection", or "Triple" are treated as if the value was "Literal".
However, the grammar production for parseOther excludes "Resource", "Literal", and "Collection", but it does not exclude "Triple".
The RELAX NG Compact schema is even broader:
parseOther =
attribute rdf:parseType {
text
}
This allows every value, including "Triple".
Expected behavior
parseOther should not match rdf:parseType="Triple", because "Triple" has its own RDF/XML 1.2 production.
Suggested fix
Update the grammar production and the RELAX NG schema so that parseOther excludes all four special values:
"Resource"
"Literal"
"Collection"
"Triple"
Conceptually, the exclusion should be:
anyString - ("Resource" | "Literal" | "Collection" | "Triple")
The RELAX NG schema should be adjusted accordingly, if expressible directly in RNC. If this cannot be expressed precisely in RNC, the schema should include a comment explaining the limitation.
Problem
The grammar text states that all
rdf:parseTypevalues other than"Resource","Literal","Collection", or"Triple"are treated as if the value was"Literal".However, the grammar production for
parseOtherexcludes"Resource","Literal", and"Collection", but it does not exclude"Triple".The RELAX NG Compact schema is even broader:
This allows every value, including
"Triple".Expected behavior
parseOthershould not matchrdf:parseType="Triple", because"Triple"has its own RDF/XML 1.2 production.Suggested fix
Update the grammar production and the RELAX NG schema so that
parseOtherexcludes all four special values:Conceptually, the exclusion should be:
The RELAX NG schema should be adjusted accordingly, if expressible directly in RNC. If this cannot be expressed precisely in RNC, the schema should include a comment explaining the limitation.