Claude Warren created JENA-1567:
-----------------------------------
Summary: Trix deserialization does not respect default namepace
Key: JENA-1567
URL: https://issues.apache.org/jira/browse/JENA-1567
Project: Apache Jena
Issue Type: Bug
Components: RIOT
Affects Versions: Jena 3.7.0, Jena 3.6.0, Jena 3.8.0
Reporter: Claude Warren
Attachments: Y.java
TriX output serialized by jena will produce xml that uses the default namespace.
{{<trix xmlns="http://www.w3.org/2004/03/trix/trix-1/">}}
{{ <graph> }}
{{ <triple>}}
{{
<uri>urn:publicid:example.com:Device;67a2a324-cb08-30b2-b02d-096eceee933b;172.21.23.16</uri>}}
{{ <uri>[http://purl.org/dc/elements/1.1/title]</uri>}}
{{ <typedLiteral
datatype="http://www.w3.org/2001/XMLSchema#string">172.21.23.16</typedLiteral>}}
{{ </triple>}}
{{ </graph>}}
{{ </trix>}}
When the ReaderTrix class attempts to deserialize the xml the "datatype"
attribute namespace is not properly detected.
This appears to be in the
{{private String attribute(XMLStreamReader parser, String nsURI, String
localname)}}
The problem appears to be that parser.getAttributePrefix() returns an empty
string and parser.getAttributeNamespace() returns an emptry string (Not NULL)
so we don't call parser.getName().getNamespaceURI() to set the attrNS value so
the equality check fails and we throw an exception.
I think that checking for "" should be added to the null check though " "
should also probably call the parser.getName().getNamespaceURI() method.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)