Add GML XSD
authorMathieu <mbaudier@argeo.org>
Wed, 16 Nov 2022 06:05:35 +0000 (07:05 +0100)
committerMathieu <mbaudier@argeo.org>
Wed, 16 Nov 2022 06:05:35 +0000 (07:05 +0100)
org.argeo.app.core/src/org/argeo/app/core/SuiteMaintenanceService.java

index 9cc47d7bbf189ef866f65340c6f357e2317d9d5b..12db1525f5425e13c18de0978a9f38fa4692f0f8 100644 (file)
@@ -1,6 +1,8 @@
 package org.argeo.app.core;
 
 import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
 
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
@@ -8,10 +10,12 @@ import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.security.Privilege;
 
+import org.argeo.api.acr.spi.ContentNamespace;
 import org.argeo.api.cms.CmsConstants;
 import org.argeo.app.api.EntityType;
 import org.argeo.jcr.JcrUtils;
 import org.argeo.maintenance.AbstractMaintenanceService;
+import org.geotools.gml3.v3_2.GML;
 
 /** Initialises an Argeo Suite backend. */
 public class SuiteMaintenanceService extends AbstractMaintenanceService {
@@ -24,6 +28,29 @@ public class SuiteMaintenanceService extends AbstractMaintenanceService {
 //                     getContentRepository().registerTypes(types.getDefaultPrefix(), types.getNamespace(),
 //                                     types.getResource() != null ? types.getResource().toExternalForm() : null);
 //             }
+               
+               // GML schema import fails because of xlinks issues
+               getContentRepository().registerTypes(new ContentNamespace() {
+
+                       @Override
+                       public URL getSchemaResource() {
+                               try {
+                                       return new URL(GML.getInstance().getSchemaLocation());
+                               } catch (MalformedURLException e) {
+                                       throw new IllegalArgumentException(e);
+                               }
+                       }
+
+                       @Override
+                       public String getNamespaceURI() {
+                               return GML.getInstance().getNamespaceURI();
+                       }
+
+                       @Override
+                       public String getDefaultPrefix() {
+                               return "gml";
+                       }
+               });
        }
 
        @Override