On Wed, 2009-08-26 at 23:20 -0400, Brian Frutchey wrote:
> I am getting validation errors when my modes.xml file has a mode with
> run-handlers or run-transformers elements, because the auto-generated
> xsd is not being generated with those elements allowed.  


run-transformers and run-handlers haven't been added to 
 no.sesat.mojo.modes.Builder
yet.

If the build output you see a text like:
Lost <element-name>
?


I've written a patch that should work but haven't time to test it.
Are you able to apply the patch and test? if it works for you i'll
commit it into 2.18 (as it doesn't break any compatibility).

~mck


-- 
"If you are distressed by anything external, the pain is not due to the
thing itself, but to your estimate of it. This you have the power to
revoke." Marcus Aurelius 
| semb.wever.org | sesat.no | finn.no |
Index: mojo/src/main/java/no/sesat/mojo/modes/Builder.java
===================================================================
--- mojo/src/main/java/no/sesat/mojo/modes/Builder.java	(revision 7271)
+++ mojo/src/main/java/no/sesat/mojo/modes/Builder.java	(working copy)
@@ -120,6 +120,8 @@
         final List<ConfigElement> queryBuilders = new ArrayList<ConfigElement>();
         final List<ConfigElement> resultHandlers = new ArrayList<ConfigElement>();
         final List<ConfigElement> queryTransformers = new ArrayList<ConfigElement>();
+        final List<ConfigElement> runHandlers = new ArrayList<ConfigElement>();
+        final List<ConfigElement> runTransformers = new ArrayList<ConfigElement>();
         {
             final ClassDoc[] classes = root.classes();
             for (int i = 0; i < classes.length; i++) {
@@ -164,6 +166,24 @@
                         }
 
                         queryTransformers.add(element);
+                    } else if (name.endsWith("RunTransformerConfig")) {
+                        element.applyNameFilter(new NameFilter() {
+                            public String filter(final String name) {
+                                return toXmlName(name.substring(0, name.lastIndexOf("RunTransformerConfig")));
+                            }
+                        });
+                        if (!element.getName().isEmpty()) {
+                            runTransformers.add(element);
+                        }
+                    } else if (name.endsWith("RunHandlerConfig")) {
+                        element.applyNameFilter(new NameFilter() {
+                            public String filter(final String name) {
+                                return toXmlName(name.substring(0, name.lastIndexOf("RunHandlerConfig")));
+                            }
+                        });
+                        if (!element.getName().isEmpty()) {
+                            runHandlers.add(element);
+                        }
                     } else {
                         System.out.println("Lost: " + element.getName()); // (authorized)
                         System.out.println(                          // (authorized)
@@ -198,6 +218,14 @@
         final ConfigElement queryTransform = new ConfigElement("query-transformers");
         queryTransform.addChildren(queryTransformers);
 
+        final ConfigElement runHandler = new ConfigElement("run-handlers");
+        runHandler.addChildren(runHandlers);
+        mode.addChild(runHandler);
+
+        final ConfigElement runTransformer = new ConfigElement("run-transformers");
+        runTransformer.addChildren(runTransformers);
+        mode.addChild(runTransformer);
+
         final ConfigElement navigators = new ConfigElement("navigators");
         final ConfigElement navigator = new ConfigElement("navigator");
         final ConfigElement facets = new ConfigElement("facets");
@@ -230,6 +258,7 @@
         final Runnable[] jobs = {new GenerateRelaxNG(modes, outputDir + "modes.rnc", id),
                 new GenerateXSD(modes, outputDir + "modes.xsd", id),
                 new GenerateDTD(modes, outputDir + "modes.dtd", id)};
+
         final int jobCount = 5;
         for (int i = 0; i < (jobs.length + jobCount - 1); i++) {
 

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Kernel-development mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-development

Reply via email to