Uploaded image for project: 'Apache Jena'
  1. Apache Jena
  2. JENA-1567

Trix deserialization does not respect default namepace

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Not A Problem
    • Jena 3.6.0, Jena 3.7.0, Jena 3.8.0
    • None
    • RIOT
    • None

    Description

      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.

       

      Attachments

        1. Y.java
          2 kB
          Claude Warren

        Activity

          People

            Unassigned Unassigned
            claude Claude Warren
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: