You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by ha...@apache.org on 2018/10/24 19:21:57 UTC

any23 git commit: ANY23-408 Use document IRI as default namespace in microdata strict mode

Repository: any23
Updated Branches:
  refs/heads/master 9bab662c4 -> a58d59e35


ANY23-408 Use document IRI as default namespace in microdata strict mode


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

Branch: refs/heads/master
Commit: a58d59e35da537b69820baf0cb6423fb3facea02
Parents: 9bab662
Author: Hans <fi...@gmail.com>
Authored: Wed Oct 24 14:16:57 2018 -0500
Committer: Hans <fi...@gmail.com>
Committed: Wed Oct 24 14:16:57 2018 -0500

----------------------------------------------------------------------
 .../extractor/microdata/MicrodataExtractor.java     | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/any23/blob/a58d59e3/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataExtractor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataExtractor.java b/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataExtractor.java
index b60677d..1e1f021 100644
--- a/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataExtractor.java
+++ b/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataExtractor.java
@@ -103,7 +103,7 @@ public class MicrodataExtractor implements Extractor.TagSoupDOMExtractor {
                 throw new IllegalArgumentException("invalid namespace IRI: " + defaultNamespace);
             }
         } else {
-            defaultNamespace = null;
+            defaultNamespace = createNamespaceFromPrefix(documentIRI);
         }
 
         documentLanguage = getDocumentLanguage(in);
@@ -507,6 +507,20 @@ public class MicrodataExtractor implements Extractor.TagSoupDOMExtractor {
     private static final String hcardPrefix    = "http://microformats.org/profile/hcard";
     private static final IRI hcardNamespaceIRI = RDFUtils.iri("http://microformats.org/profile/hcard#");
 
+    static {
+        assert createNamespaceFromPrefix(RDFUtils.iri(hcardPrefix)).equals(hcardNamespaceIRI);
+    }
+
+    private static IRI createNamespaceFromPrefix(IRI prefix) {
+        if (prefix.getLocalName().isEmpty()) {
+            return prefix;
+        }
+        String ns = prefix.getNamespace();
+        IRI ret = RDFUtils.iri(ns.endsWith("#") ? ns : (prefix.stringValue() + "#"));
+        assert ret.getLocalName().isEmpty() && ret.getNamespace().endsWith("#");
+        return ret;
+    }
+
     private static IRI getNamespaceIRI(IRI itemType) {
         //TODO: support registries so hardcoding not needed
         return itemType.stringValue().startsWith(hcardPrefix) ? hcardNamespaceIRI : itemType;