This page shows test results from the following implementations:

rdfQuery
rdfQuery trunk (r174).
Tested in Firefox 3.0.14, and Opera 10.00 (build 4585).
Tested with this test runner.
rdfa.js
http://www.w3.org/2006/07/SWD/RDFa/impl/js/rdfa.js (Last-Modified: Wed, 10 Jun 2009 19:56:02 GMT).
Tested in Firefox 3.0.14, and Opera 10.00 (build 4585).
Tested with this test runner.
pyRdfa
pyRdfa 2.3.5, patched to work with html5lib tip.
Swignition
Swignition 0.1-alpha15
librdfa
http://rdfa.digitalbazaar.com/librdfa/rdfa2rdf.py?uri=...
Yahoo SearchMonkey
http://developer.search.yahoo.com/help/objectfinder?url=...
SPREAD
http://htmlwg.mn.aptest.com/rdfa/extract_rdfa.pl?format=n3&type=html&uri=...
Sindice RDFizer
http://api.sindice.com/rdfizer/v1/rdfizer/ntriples/...

The online tests are using whatever version was exposed on 2009-09-23 (except for SPREAD which returned no data then, so its results are from 2009-09-05).

Test rdfQuery (Firefox) rdfQuery (Opera) rdfa.js (Firefox) rdfa.js (Opera) pyRdfa Swignition librdfa Yahoo SearchMonkey SPREAD Sindice RDFizer Expected output Markup
Empty document











<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
Basic <link rel>
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .

<> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="next" href="http://example.org/test.css" />
Empty <link rel>











<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="" href="http://example.org/test.css" />
Valueless <link rel>











<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel href="http://example.org/test.css" />
Whitespace around <link rel>
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .

<> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="  next  " href="http://example.org/test.css" />
Whitespace in <link rel>
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#first> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#last> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#section> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#subsection> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#first> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#last> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#section> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#subsection> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#subsection> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#last> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#section> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#first> <http://example.org/test.css>.


FAIL: "Bad XML"
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#last> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#section> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#subsection> <http://example.org/test.css> .
FAIL: No response
<> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#first> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#last> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#section> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#subsection> <http://example.org/test.css> .
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="next&#x20;prev&#x09;first&#x0a;last&#x0c;section&#x0d;subsection" href="http://example.org/test.css" />
Not-whitespace in <link rel>







FAIL: "Bad XML"

FAIL: No response

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="next&#x0b;prev" href="http://example.org/test.css" />
Uppercase in <link rel>
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .


<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .




<> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="NEXT" href="http://example.org/test.css" />
Bogus reserved words in <link rel>
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .

<> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="next bogus prev" href="http://example.org/test.css" />
URLs in <link rel>
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css>.
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .

<> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link rel="next http://example.org/test prev" href="http://example.org/test.css" />
CURIEs in <link rel>
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css>.
<{BASE}> <http://example.org/test> <http://example.org/test.css>.
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css>.
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<{BASE}> <http://example.org/test> <http://example.org/test.css> .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#next> <http://example.org/test.css> .
<> <http://example.org/test> <http://example.org/test.css> .
<> <http://www.w3.org/1999/xhtml/vocab#prev> <http://example.org/test.css> .
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<link xmlns:ex="http://example.org/" rel="next ex:test prev" href="http://example.org/test.css" />
Basic xmlns
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" property="ex:test">Test</p>
Uppercase xmlns, lowercase CURIE
<{BASE}> <http://example.org/test> "Test" .

<{BASE}> <http://example.org/test> "Test" .

<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test" .

<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p XMLNS:EX="http://example.org/" property="ex:test">Test</p>
Uppercase xmlns, uppercase CURIE





<{BASE}> <EX:test> "Test" .





<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p XMLNS:EX="http://example.org/" property="EX:test">Test</p>
Non-NCName xmlns prefix


<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test".

FAIL: Error: Empty String at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117
	...caught

Raw RDF: 

<{BASE}> <http://example.org/test> "Test" .
FAIL: No response

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:0="http://example.org/" property="0:test">Test</p>
Empty xmlns prefix
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#test> "Test" .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#test> "Test".
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#test> "Test" .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#test> "Test" .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#test> "Test" .
<{BASE}> <http://www.w3.org/1999/xhtml/vocab#test> "Test" .

<> <http://www.w3.org/1999/xhtml/vocab#test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:="http://example.org/" property=":test">Test</p>
Underscore xmlns prefix


<{BASE}> _:ntest "Test" .
<{BASE}> _:ntest "Test" .
FAIL: global name 'warning' is not defined
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <{BASE}_> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> _:test "Test" .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:_="http://example.org/" property="_:test">Test</p>
xmlns prefix 'xml' with correct URI
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test".
<{BASE}> <xml:test> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
FAIL: Error: Unknown namespace: xml at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML.pm line 500. at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117


Raw RDF: <?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:h="http://www.w3.org/1999/xhtml">
  <rdf:Description rdf:about="">
    <xml:test>Test</xml:test>
  </rdf:Description>
</rdf:RDF>
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<> <http://www.w3.org/XML/1998/namespacetest> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:xml="http://www.w3.org/XML/1998/namespace" property="xml:test">Test</p>
xmlns prefix 'xml' with incorrect URI
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <xml:test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
FAIL: Error: Unknown namespace: xml at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML.pm line 500. at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117


Raw RDF: <?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:h="http://www.w3.org/1999/xhtml">
  <rdf:Description rdf:about="">
    <xml:test>Test</xml:test>
  </rdf:Description>
</rdf:RDF>
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:xml="http://example.org/" property="xml:test">Test</p>
xmlns prefix 'xmlns' with correct URI
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test".
<{BASE}> <xmlns:test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
FAIL: No response

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:xmlns="http://www.w3.org/2000/xmlns/" property="xmlns:test">Test</p>
xmlns prefix 'xmlns' with incorrect URI
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <xmlns:test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
FAIL: No response

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:xmlns="http://example.org/" property="xmlns:test">Test</p>
xmlns prefix 'xmlzzz'
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:xmlzzz="http://example.org/" property="xmlzzz:test">Test</p>
Empty xmlns value


<{BASE}> <http://example.com/test> "Test" .
<{BASE}> <http://example.com/test> "Test" .
<{BASE}> <http://example.com/test> "Test".
<{BASE}> <ex:http://example.com/test> "Test" .
<{BASE}> <file:////http> "Test" .




<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="" property="ex:http://example.com/test">Test</p>
Empty xmlns value overriding non-empty
<{BASE}> <http://example.org/http://example.com/test> "Test" .
<{BASE}> <http://example.org/http://example.com/test> "Test" .
<{BASE}> <http://example.com/test> "Test" .
<{BASE}> <http://example.com/test> "Test" .
<{BASE}> <http://example.com/test> "Test".
<{BASE}> <http://example.org/http://example.com/test> "Test" .
<{BASE}> <file:////http> "Test" .

<{BASE}> <http://example.org/http> "Test" .
FAIL: No response
<> <http://example.org/http://example.com/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/"><span xmlns:ex="" property="ex:http://example.com/test">Test</span></p>
Invalid (xml URI) xmlns value


<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test".
<{BASE}> <ex:test> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
FAIL: Error: Unknown namespace: xml at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML.pm line 500. at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117


Raw RDF: <?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:h="http://www.w3.org/1999/xhtml">
  <rdf:Description rdf:about="">
    <xml:test>Test</xml:test>
  </rdf:Description>
</rdf:RDF>
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
FAIL: No response

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://www.w3.org/XML/1998/namespace" property="ex:test">Test</p>
Invalid (xmlns URI) xmlns value


<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test".
<{BASE}> <ex:test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
FAIL: No response

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://www.w3.org/2000/xmlns/" property="ex:test">Test</p>
Colon in prefix
<{BASE}> <http://example.org/1/two:three:test> "Test" .
<{BASE}> <http://example.org/1/two:three:test> "Test" .
<{BASE}> <http://example.org/1/two:three:test> "Test" .
<{BASE}> <http://example.org/1/two:three:test> "Test" .
<{BASE}> <http://example.org/1/two:three:test> "Test".
<{BASE}> <http://example.org/1/two:three:test> "Test" .
FAIL: Error: Empty String at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117
	...caught

Raw RDF: 

<{BASE}> <http://example.org/2/two> "Test" .
FAIL: No response
<> <http://example.org/1/two:three:test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/1/" xmlns:ex:two="http://example.org/2/" property="ex:two:three:test">Test</p>
Non-XML4e xmlns prefix
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .

<{BASE}> <http://example.org/test> "Test" .


<{BASE}> <http://example.org/test> "Test" .

<> <http://example.org/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:testŀ="http://example.org/">
  <span xmlns:test="http://example.org/error/" property="testŀ:test">Test</span>
</p>
Non-ASCII case insensitivity in xmlns prefix (1)
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/2/two> "Test".
<{BASE}> <http://example.org/1/one> "Test".

FAIL: Error: Empty String at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117
	...caught

Raw RDF: 
FAIL: Error: Unknown namespace: testÁ at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML.pm line 500. at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117


Raw RDF: <?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:h="http://www.w3.org/1999/xhtml">
  <rdf:Description xmlns:testÁ="http://example.org/1/" rdf:about="">
    <testÁ:one xmlns:testÁ="http://example.org/1/">Test</testÁ:one>
  </rdf:Description>
  <rdf:Description xmlns:testá="http://example.org/2/" rdf:about="">
    <testá:two xmlns:testá="http://example.org/2/">Test</testá:two>
  </rdf:Description>
</rdf:RDF>
<{BASE}> <http://example.org/2/two> "Test" .

<> <http://example.org/1/one> "Test".
<> <http://example.org/2/two> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:testÁ="http://example.org/1/">
  <span xmlns:testá="http://example.org/2/">
    <span property="testÁ:one">Test</span>
    <span property="testá:two">Test</span>
  </span>
</p>
Non-ASCII case insensitivity in xmlns prefix (2)
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/1/one> "Test" .
<{BASE}> <http://example.org/2/two> "Test" .
<{BASE}> <http://example.org/1/one> "Test".
<{BASE}> <http://example.org/2/two> "Test".
<{BASE}> <http://example.org/2/two> "Test" .
FAIL: Error: Empty String at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117
	...caught

Raw RDF: 
FAIL: Error: Unknown namespace: testᾈ at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML.pm line 500. at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117


Raw RDF: <?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:h="http://www.w3.org/1999/xhtml">
  <rdf:Description xmlns:testᾈ="http://example.org/1/" rdf:about="">
    <testᾈ:one xmlns:testᾈ="http://example.org/1/">Test</testᾈ:one>
  </rdf:Description>
  <rdf:Description xmlns:testᾀ="http://example.org/2/" rdf:about="">
    <testᾀ:two xmlns:testᾀ="http://example.org/2/">Test</testᾀ:two>
  </rdf:Description>
</rdf:RDF>
<{BASE}> <http://example.org/2/two> "Test" .

<> <http://example.org/1/one> "Test".
<> <http://example.org/2/two> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:testᾈ="http://example.org/1/">
  <span xmlns:testᾀ="http://example.org/2/">
    <span property="testᾈ:one">Test</span>
    <span property="testᾀ:two">Test</span>
  </span>
</p>
Scripted: Conflicting xmlns values
<{BASE}> <test2:test> "Test" .
<{BASE}> <test2:test> "Test" .
<{BASE}> <test2:test> "Test" .
<{BASE}> <test2:test> "Test" .
MissingMissingMissingMissingMissingMissing
<> <test2:test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:t="test1:" id="d">
<span property="t:test">Test</span>
</p>
<script>
document.getElementById('d').setAttributeNS(
    'http://www.w3.org/2000/xmlns/', 'xmlns:t', 'test2:');
    /* (now the element has two distinct attributes,
        each in different namespaces) */
</script>
Undeclared prefix





<{BASE}> <foobar:test> "Test" .





<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p property="foobar:test">Test</p>
Undeclared prefix 'rdf'


<{BASE}> <http://www.w3.org/1999/02/22-rdf-syntax-ns#test> "Test" .
<{BASE}> <http://www.w3.org/1999/02/22-rdf-syntax-ns#test> "Test" .
<{BASE}> <http://www.w3.org/1999/02/22-rdf-syntax-ns#test> "Test".
<{BASE}> <http://www.w3.org/1999/02/22-rdf-syntax-ns#test> "Test" .





<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p property="rdf:test">Test</p>
Undeclared prefix 'xml'
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .
<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .



<{BASE}> <xml:test> "Test" .

FAIL: Error: Unknown namespace: xml at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML.pm line 500. at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117


Raw RDF: <?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:h="http://www.w3.org/1999/xhtml">
  <rdf:Description rdf:about="">
    <xml:test>Test</xml:test>
  </rdf:Description>
</rdf:RDF>

<{BASE}> <http://www.w3.org/XML/1998/namespacetest> "Test" .

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p property="xml:test">Test</p>
Undeclared prefix 'xmlns'
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .
<{BASE}> <http://www.w3.org/2000/xmlns/test> "Test" .



<{BASE}> <xmlns:test> "Test" .





<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p property="xmlns:test">Test</p>
Undeclared common prefixes




<{BASE}> <http://www.w3.org/2000/01/rdf-schema#test> "Test".
<{BASE}> <http://purl.org/dc/elements/1.1/test> "Test" .
<{BASE}> <http://www.w3.org/2000/01/rdf-schema#test> "Test" .
<{BASE}> <http://www.w3.org/2001/XMLSchema#test> "Test" .
<{BASE}> <http://www.w3.org/2002/07/owl#test> "Test" .
<{BASE}> <http://xmlns.com/foaf/0.1/test> "Test" .
<{BASE}> <xv:test> "Test" .





<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p property="dc:test">Test</p>
<p property="foaf:test">Test</p>
<p property="owl:test">Test</p>
<p property="rdfs:test">Test</p>
<p property="xv:test">Test</p>
<p property="xsd:test">Test</p>
Digits in CURIE value
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test".
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test" .
<{BASE}> <http://example.org/one2three4> "Test" .
<> <http://example.org/one2three4> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" property="ex:one2three4">Test</p>
Ignoring 'about' with undefined prefix
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.com/> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.com/> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> "Test" .
<{BASE}> <http://example.org/test2> "Test".
<http://example.com/> <http://example.org/test1> "Test".

<http://example.com/> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<{BASE}bogus> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.com/> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<http://zaynar.co.uk/temp/searchmonkey-files/bogus> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test".
<http://example.com/> <http://example.org/test2> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/">
  <span src="http://example.com/">
    <span property="ex:test1">Test</span>
  </span>
  <span about="[bogus:bogus]" src="http://example.com/">
    <span property="ex:test2">Test</span>
  </span>
</p>
Ignoring 'about' with invalid prefix
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.com/> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.com/> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.org/error/bogus> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.org/error/bogus> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test".
<http://example.org/error/bogus> <http://example.org/test2> "Test".
<{BASE}> <http://example.org/test2> "Test" .
FAIL: Error: Empty String at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117
	...caught

Raw RDF: 

Missing
<http://example.com/> <http://example.org/test1> "Test" .
<http://example.org/error/bogus> <http://example.org/test2> "Test" .
<http://example.com/> <http://example.org/test1> "Test".
<http://example.com/> <http://example.org/test2> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" xmlns:0="http://example.org/error/">
  <span src="http://example.com/">
    <span property="ex:test1">Test</span>
  </span>
  <span about="[0:bogus]" src="http://example.com/">
    <span property="ex:test2">Test</span>
  </span>
</p>
Ignoring 'rel' with undefined prefix
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test".
<{BASE}> <http://example.org/test2> <http://example.org/href>.
<{BASE}> <http://example.org/test3> "Test".
<{BASE}> <http://example.org/test5> "Test".
<{BASE}> <bogus:test4> <http://example.org/href> .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<{BASE}> <http://example.org/test3> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<http://example.org/href> <http://example.org/test5> "Test" .
<{BASE}> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test".
<> <http://example.org/test2> <http://example.org/href>.
<> <http://example.org/test3> "Test".
<> <http://example.org/test5> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/">
  <span property="ex:test1" href="http://example.org/href">Test</span>
  <span rel="ex:test2" property="ex:test3" href="http://example.org/href">Test</span>
  <span rel="bogus:test4" property="ex:test5" href="http://example.org/href">Test</span>
</p>
Ignoring 'rel' with invalid prefix
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/error/test4> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/error/test4> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href>.
<{BASE}> <http://example.org/test3> "Test".
<{BASE}> <http://example.org/error/test4> <http://example.org/href>.
<{BASE}> <http://example.org/test5> "Test".
<http://example.org/href> <http://example.org/test1> "Test".
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
FAIL: Error: Empty String at /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux/XML/LibXML/SAX.pm line 64
 at /usr/lib64/perl5/site_perl/5.8.8/RDF/Trine/Parser/RDFXML.pm line 117
	...caught

Raw RDF: 

<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/error/test4> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
FAIL: No response
<http://example.org/href> <http://example.org/test1> "Test".
<> <http://example.org/test2> <http://example.org/href>.
<> <http://example.org/test3> "Test".
<> <http://example.org/test5> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" xmlns:0="http://example.org/error/">
  <span property="ex:test1" href="http://example.org/href">Test</span>
  <span rel="ex:test2" property="ex:test3" href="http://example.org/href">Test</span>
  <span rel="0:test4" property="ex:test5" href="http://example.org/href">Test</span>
</p>
Ignoring empty 'rel'
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<{BASE}> <http://example.org/test5> "Test".
<{BASE}> <http://example.org/test3> "Test".
<{BASE}> <http://example.org/test2> <http://example.org/href>.
<http://example.org/href> <http://example.org/test1> "Test".
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<{BASE}> <http://example.org/test1> "Test" .
<{BASE}> <http://example.org/test2> <http://example.org/href> .
<{BASE}> <http://example.org/test3> "Test" .
<{BASE}> <http://example.org/test5> "Test" .
<http://example.org/href> <http://example.org/test1> "Test".
<> <http://example.org/test2> <http://example.org/href>.
<> <http://example.org/test3> "Test".
<> <http://example.org/test5> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/">
  <span property="ex:test1" href="http://example.org/href">Test</span>
  <span rel="ex:test2" property="ex:test3" href="http://example.org/href">Test</span>
  <span rel="" property="ex:test5" href="http://example.org/href">Test</span>
</p>
Invalid property setting 'skip element'
<http://example.com/> <http://example.org/rel1> <http://example.net/> .
<http://example.com/> <http://example.org/rel2> _:b136 .
_:b136 <http://example.org/prop> "Content 2" .
<http://example.com/> <http://example.org/rel3> _:b137 .
<http://example.com/> <http://example.org/rel1> <http://example.net/> .
<http://example.com/> <http://example.org/rel1> <http://example.com/> .
<http://example.com/> <http://example.org/rel2> _:b111 .
_:b111 <http://example.org/prop> "Content 2" .
<http://example.com/> <http://example.org/rel3> _:b112 .
_:n1 <http://example.org/prop> "Content 2" .
_:n1 <http://example.org/prop> "Content 2" .
<http://example.com/> <http://example.org/rel3> _:oOheHpMX87.
<http://example.com/> <http://example.org/rel2> _:oOheHpMX86.
<http://example.com/> <http://example.org/rel1> <http://example.net/>.
_:oOheHpMX86 <http://example.org/prop> "Content 2".

<http://example.com/> <http://example.org/rel1> <http://example.net/> .
<http://example.com/> <http://example.org/rel1> <http://example.net/> .
<http://example.com/> <http://example.org/rel2> _:r1253691660r17 .
_:r1253691660r17 <http://example.org/prop> "Content 2" .
<http://example.com/> <http://example.org/rel3> _:r1253691660r19 .
<http://example.com/> <http://example.org/rel1> <http://example.net/> .
<http://example.com/> <http://example.org/rel2> _:N1 .
_:N1 <http://example.org/prop> "Content 2" .
<http://example.com/> <http://example.org/rel3> <http://example.net/> .
<http://example.com/> <http://example.org/rel1> <http://example.net/> .
<http://example.com/> <http://example.org/rel2> _:node14fithsfax1 .
_:node14fithsfax1 <http://example.org/prop> "Content 2" .
<http://example.com/> <http://example.org/rel3> _:node14fithsfax2 .
<http://example.com/> <http://example.org/rel1> <http://example.net/>.
<http://example.com/> <http://example.org/rel2> _:blanknode0.
_:blanknode0 <http://example.org/prop> "Content 2" .
<http://example.com/> <http://example.org/rel3> _:blanknode1.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" about="http://example.com/" rel="ex:rel1">
  <span content="Content 1"><span about="http://example.net/">Test 1</span>
</p>
<p xmlns:ex="http://example.org/" about="http://example.com/" rel="ex:rel2">
  <span property="ex:prop" content="Content 2"><span about="http://example.net/">Test 2</span></span>
</p>
<p xmlns:ex="http://example.org/" about="http://example.com/" rel="ex:rel3">
  <span property="bogus:bogus" content="Content 3"><span about="http://example.net/">Test 3</span></span>
</p>
Safe CURIE containing square brackets
<{BASE}> <http://example.org/1/test> "Test" .
<{BASE}> <http://example.org/1/test> "Test" .
<http://example.org/2/test]> <http://example.org/1/test> "Test" .
<http://example.org/2/test]> <http://example.org/1/test> "Test" .
<{BASE}> <http://example.org/1/test> "Test".



<http://example.org/2/test]> <http://example.org/1/test> "Test" .

<> <http://example.org/1/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/1/" xmlns:[ex="http://example.org/2/" about="[[ex:test]]" property="ex:test">Test</p>
Language in xml:lang
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test".
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" property="ex:test" xml:lang="aa">Test</p>
Language in lang
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test"@aa.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" property="ex:test" lang="aa">Test</p>
Language inheritance
<{BASE}> <http://example.org/test> "Test"@cc .
<{BASE}> <http://example.org/test> "Test"@cc .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test"@cc .
<{BASE}> <http://example.org/test> "Test" .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@cc .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test"@cc.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p lang="aa"><span lang="bb"><span xmlns:ex="http://example.org/" property="ex:test" lang="cc">Test</span></span></p>
Conflicting languages
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test"@aa.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" property="ex:test" lang="aa" xml:lang="bb">Test</p>
Duplicate language attributes
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test"@bb .

<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test"@bb.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" property="ex:test" xml:lang="aa" lang="bb" lang="cc" xml:lang="dd">Test</p>
Conflicting language inheritance (1)
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test"@aa.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p lang="aa"><span xmlns:ex="http://example.org/" property="ex:test" xml:lang="bb">Test</span></p>
Conflicting language inheritance (2)
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test".
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test" .
<> <http://example.org/test> "Test"@bb.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xml:lang="aa"><span xmlns:ex="http://example.org/" property="ex:test" lang="bb">Test</span></p>
Scripted: Conflicting languages
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
MissingMissingMissingMissingMissingMissing
<> <http://example.org/test> "Test"@cc.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p xmlns:ex="http://example.org/" property="ex:test" lang="aa" xml:lang="bb" id="d">Test</p>
<script>
document.getElementById('d').setAttributeNS(
  'http://www.w3.org/XML/1998/namespace', 'xml:lang', 'cc');
</script>
Scripted: Conflicting language inheritance (1)
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@aa .
<{BASE}> <http://example.org/test> "Test"@bb .
<{BASE}> <http://example.org/test> "Test"@bb .
MissingMissingMissingMissingMissingMissing
<> <http://example.org/test> "Test"@aa.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p id="d"><span xmlns:ex="http://example.org/" property="ex:test" lang="aa" xml:lang="bb">Test</span></p>
<script>
document.getElementById('d').setAttributeNS(
  'http://www.w3.org/XML/1998/namespace', 'xml:lang', 'cc');
</script>
Scripted: Conflicting language inheritance (2)
<{BASE}> <http://example.org/test> "Test"@cc .
<{BASE}> <http://example.org/test> "Test"@cc .
<{BASE}> <http://example.org/test> "Test"@cc .
<{BASE}> <http://example.org/test> "Test"@bb .
MissingMissingMissingMissingMissingMissing
<> <http://example.org/test> "Test"@cc.
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<p lang="aa" xml:lang="bb"><span xmlns:ex="http://example.org/" property="ex:test" id="d">Test</span></p>
<script>
document.getElementById('d').setAttributeNS(
  'http://www.w3.org/XML/1998/namespace', 'xml:lang', 'cc');
</script>