X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FTypesManager.java;h=6cfb2e5e9cbc2a74736c9a231e488ad99e164ac0;hb=7e464c3cedfa41ece64811fb55ddc9ce740a1050;hp=731c6d5624488d07ac04277471fe815c52489954;hpb=4c7e1885b8bf3c93fa0919ace122e3f289a925ea;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/TypesManager.java b/org.argeo.cms/src/org/argeo/cms/acr/TypesManager.java index 731c6d562..6cfb2e5e9 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/TypesManager.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/TypesManager.java @@ -5,7 +5,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; @@ -43,6 +42,7 @@ import org.apache.xerces.xs.XSTerm; import org.apache.xerces.xs.XSTypeDefinition; import org.argeo.api.acr.CrAttributeType; import org.argeo.api.acr.NamespaceUtils; +import org.argeo.api.acr.RuntimeNamespaceContext; import org.argeo.api.cms.CmsLog; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; @@ -51,7 +51,7 @@ import org.xml.sax.SAXParseException; /** Register content types. */ class TypesManager { private final static CmsLog log = CmsLog.getLog(TypesManager.class); - private Map prefixes = new TreeMap<>(); +// private Map prefixes = new TreeMap<>(); // immutable factories private SchemaFactory schemaFactory; @@ -77,32 +77,29 @@ class TypesManager { } - public synchronized void init() { -// prefixes.put(CrName.CR_DEFAULT_PREFIX, CrName.CR_NAMESPACE_URI); -// prefixes.put("basic", CrName.CR_NAMESPACE_URI); -// prefixes.put("owner", CrName.CR_NAMESPACE_URI); -// prefixes.put("posix", CrName.CR_NAMESPACE_URI); - + public void init() { for (CmsContentTypes cs : CmsContentTypes.values()) { - StreamSource source = new StreamSource(cs.getResource().toExternalForm()); - sources.add(source); - if (prefixes.containsKey(cs.getDefaultPrefix())) - throw new IllegalStateException("Prefix " + cs.getDefaultPrefix() + " is already mapped with " - + prefixes.get(cs.getDefaultPrefix())); - prefixes.put(cs.getDefaultPrefix(), cs.getNamespace()); + if (cs.getResource() != null) { + StreamSource source = new StreamSource(cs.getResource().toExternalForm()); + sources.add(source); + } + RuntimeNamespaceContext.register(cs.getNamespace(), cs.getDefaultPrefix()); } reload(); } - public synchronized void registerTypes(String defaultPrefix, String namespace, String xsdSystemId) { - if (prefixes.containsKey(defaultPrefix)) - throw new IllegalStateException( - "Prefix " + defaultPrefix + " is already mapped with " + prefixes.get(defaultPrefix)); - prefixes.put(defaultPrefix, namespace); + public void registerTypes(String defaultPrefix, String namespace, String xsdSystemId) { +// if (prefixes.containsKey(defaultPrefix)) +// throw new IllegalStateException( +// "Prefix " + defaultPrefix + " is already mapped with " + prefixes.get(defaultPrefix)); +// prefixes.put(defaultPrefix, namespace); + RuntimeNamespaceContext.register(namespace, defaultPrefix); - sources.add(new StreamSource(xsdSystemId)); - reload(); + if (xsdSystemId != null) { + sources.add(new StreamSource(xsdSystemId)); + reload(); + } } public Set listTypes() { @@ -459,9 +456,9 @@ class TypesManager { } } - public Map getPrefixes() { - return prefixes; - } +// public Map getPrefixes() { +// return prefixes; +// } public List getSources() { return sources;