X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FTypesManager.java;h=c60849355ecf9207512d23dda63ac3d38471ef84;hb=106ef2f8767562abe0a0f7ed09aa96e0baa35de1;hp=6cfb2e5e9cbc2a74736c9a231e488ad99e164ac0;hpb=7e464c3cedfa41ece64811fb55ddc9ce740a1050;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 6cfb2e5e9..c60849355 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/TypesManager.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/TypesManager.java @@ -43,6 +43,7 @@ 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.acr.spi.ContentNamespace; import org.argeo.api.cms.CmsLog; import org.xml.sax.ErrorHandler; import org.xml.sax.SAXException; @@ -78,28 +79,33 @@ class TypesManager { } public void init() { - for (CmsContentTypes cs : CmsContentTypes.values()) { - if (cs.getResource() != null) { - StreamSource source = new StreamSource(cs.getResource().toExternalForm()); - sources.add(source); - } - RuntimeNamespaceContext.register(cs.getNamespace(), cs.getDefaultPrefix()); - } +// for (CmsContentTypes cs : CmsContentTypes.values()) { +// if (cs.getSchemaResource() != null) { +// StreamSource source = new StreamSource(cs.getSchemaResource().toExternalForm()); +// sources.add(source); +// } +// RuntimeNamespaceContext.register(cs.getNamespace(), cs.getDefaultPrefix()); +// } - reload(); + registerTypes(CmsContentNamespace.values()); +// reload(); } - public void registerTypes(String defaultPrefix, String namespace, String xsdSystemId) { + public void registerTypes(ContentNamespace... namespaces) { // if (prefixes.containsKey(defaultPrefix)) // throw new IllegalStateException( // "Prefix " + defaultPrefix + " is already mapped with " + prefixes.get(defaultPrefix)); // prefixes.put(defaultPrefix, namespace); - RuntimeNamespaceContext.register(namespace, defaultPrefix); + for (ContentNamespace contentNamespace : namespaces) { + RuntimeNamespaceContext.register(contentNamespace.getNamespaceURI(), contentNamespace.getDefaultPrefix()); - if (xsdSystemId != null) { - sources.add(new StreamSource(xsdSystemId)); - reload(); + if (contentNamespace.getSchemaResource() != null) { + sources.add(new StreamSource(contentNamespace.getSchemaResource().toExternalForm())); + log.debug(() -> "Registered types " + contentNamespace.getNamespaceURI() + " from " + + contentNamespace.getSchemaResource().toExternalForm()); + } } + reload(); } public Set listTypes() { @@ -452,7 +458,8 @@ class TypesManager { try { validator.validate(source); } catch (SAXException e) { - throw new IllegalArgumentException("Provided source is not valid", e); + log.error(source + " is not valid " + e); + // throw new IllegalArgumentException("Provided source is not valid", e); } }