You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2015/12/12 16:32:42 UTC

jena git commit: JENA-1071: Allow wider range of characters for rdf:ID.

Repository: jena
Updated Branches:
  refs/heads/master 75313701c -> 52dbf46c4


JENA-1071: Allow wider range of characters for rdf:ID.

Spilt NCName checking into usage for rdf:nodeId and rdf:ID
so that only rdf:ID is changed.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/52dbf46c
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/52dbf46c
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/52dbf46c

Branch: refs/heads/master
Commit: 52dbf46c475f19ca420e590864869c5a752996ef
Parents: 7531370
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Dec 12 15:32:16 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Dec 12 15:32:16 2015 +0000

----------------------------------------------------------------------
 .../rdfxml/xmlinput/impl/ParserSupport.java     | 39 +++++++++++++-------
 .../rdfxml/xmlinput/states/WantDescription.java |  2 +-
 .../xmlinput/states/WantPropertyElement.java    |  2 +-
 3 files changed, 28 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/52dbf46c/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/impl/ParserSupport.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/impl/ParserSupport.java b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/impl/ParserSupport.java
index 5c6edd5..1dbdbed 100644
--- a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/impl/ParserSupport.java
+++ b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/impl/ParserSupport.java
@@ -29,6 +29,7 @@ import java.util.Map ;
 
 import org.apache.jena.iri.IRI ;
 import org.apache.jena.rdfxml.xmlinput.ARPErrorNumbers ;
+import org.apache.xerces.util.XML11Char ;
 import org.apache.xerces.util.XMLChar ;
 import org.xml.sax.SAXParseException ;
 
@@ -80,26 +81,38 @@ public class ParserSupport implements ARPErrorNumbers, Names {
 			}
 		}
 
-
-		checkXMLName(taintMe,str);
+		checkID_XMLName(taintMe,str);
 		checkEncoding(taintMe,str);
 	}
-	protected void checkXMLName( Taint taintMe, String str) throws SAXParseException {
-		if (!XMLChar.isValidNCName(str)) {
-			//   	System.err.println("not name (id): " + str);
+	
+	protected void checkNodeID_XMLName( Taint taintMe, String str) throws SAXParseException {
+	    if ( ! XMLChar.isValidNCName(str) ) { 
+            warning(taintMe,
+                WARN_BAD_NAME,
+                "Not an XML Name: '" + str + "'");
+        }
+	}
+	
+	protected void checkID_XMLName( Taint taintMe, String str) throws SAXParseException {
+	    // Was called "checkXMLName" and same code as checkNodeID_XMLName until Jena 3.1.0.
+	    // See JENA-1071
+	    
+	    // Java and xerces are XML 1.0 4th edition.
+	    // XML 1.0 5th edition and XML 1.1 allow a wider range of characters in an NCName.
+	    
+	    // rdf:about="..." is any string but rdf:ID="..." is an XML NCName.
+	    
+	    // This operation here should allow the wider range to make
+	    // it compatible with rdf:about="...full URI..."
+
+	    //if (!XMLChar.isValidNCName(str)) {
+		if ( ! XML11Char.isXML11ValidNCName(str) ) { 
 			warning(taintMe,
 				WARN_BAD_NAME,
 				"Not an XML Name: '" + str + "'");
 		}
-
 	}
-//	protected void checkNodeID(Taint taintMe, String str) throws SAXParseException {
-//		if (!XMLChar.isValidNCName(str)) {
-//			warning(taintMe,
-//				WARN_BAD_NAME,
-//				"Not an XML Name: '" + str + "'");
-//		}
-//	}
+
 	public void checkString(Taint taintMe,String t) throws SAXParseException {
 		if (!CharacterModel.isNormalFormC(t))
 			warning(taintMe,

http://git-wip-us.apache.org/repos/asf/jena/blob/52dbf46c/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantDescription.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantDescription.java b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantDescription.java
index e089abe..ae6f270 100644
--- a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantDescription.java
+++ b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantDescription.java
@@ -71,7 +71,7 @@ abstract public class WantDescription extends Frame implements HasSubjectFrameI
                     warning(ERR_SYNTAX_ERROR,"Both ID and nodeID");
             }
             subject = new ARPResource(arp,ap.nodeID);
-            checkXMLName(subject,ap.nodeID);
+            checkNodeID_XMLName(subject,ap.nodeID);
             subjectIsBlank = true;
         }
         if (subject==null) {

http://git-wip-us.apache.org/repos/asf/jena/blob/52dbf46c/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantPropertyElement.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantPropertyElement.java b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantPropertyElement.java
index 69fda69..dc60f30 100644
--- a/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantPropertyElement.java
+++ b/jena-core/src/main/java/org/apache/jena/rdfxml/xmlinput/states/WantPropertyElement.java
@@ -101,7 +101,7 @@ public class WantPropertyElement extends Frame implements WantsObjectFrameI,
             if (ap.nodeID != null) {
 
                 object = new ARPResource(arp, ap.nodeID);
-                checkXMLName(object, ap.nodeID);
+                checkNodeID_XMLName(object, ap.nodeID);
                 objectIsBlank = true;
             }
             if (ap.resource != null) {