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;