Author: DartPeng
Date: 2008-09-09 06:01:10 -0400 (Tue, 09 Sep 2008)
New Revision: 10154
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/.classpath
trunk/smooks/tests/org.jboss.tools.smooks.test/.project
trunk/smooks/tests/org.jboss.tools.smooks.test/META-INF/
trunk/smooks/tests/org.jboss.tools.smooks.test/META-INF/MANIFEST.MF
trunk/smooks/tests/org.jboss.tools.smooks.test/build.properties
trunk/smooks/tests/org.jboss.tools.smooks.test/lib/
trunk/smooks/tests/org.jboss.tools.smooks.test/lib/dom4j-1.6.1.jar
trunk/smooks/tests/org.jboss.tools.smooks.test/src/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/Activator.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineOrder.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/OrderItem.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.smooks.graph
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/XMLStructuredModelBuilderTest.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/pom.xml
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.0.xsd
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.1.xsd
Log:
Share project 'org.jboss.tools.smooks.test' into
'https://svn.jboss.org/repos/jbosstools/trunk/smooks/tests'
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/.classpath
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/.classpath (rev
0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/.classpath 2008-09-09 10:01:10 UTC (rev
10154)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/.classpath
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/.project
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/.project (rev
0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/.project 2008-09-09 10:01:10 UTC (rev
10154)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.smooks.test</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/.project
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/META-INF/MANIFEST.MF
(rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/META-INF/MANIFEST.MF 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test Plug-in
+Bundle-SymbolicName: org.jboss.tools.smooks.test
+Bundle-Version: 1.0.0
+Bundle-Activator: org.jboss.tools.smooks.test.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.jboss.tools.smooks.graphicalInfo,
+ org.jboss.tools.smooks.javabean,
+ org.jboss.tools.smooks.model,
+ org.jboss.tools.smooks.model.edit,
+ org.jboss.tools.smooks.ui,
+ org.jboss.tools.smooks.xml,
+ org.jboss.tools.smooks.xml2java,
+ org.junit,
+ org.eclipse.core.resources,
+ org.eclipse.xsd,
+ org.eclipse.xsd.edit,
+ org.eclipse.emf,
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.emf.edit.ui
+Eclipse-LazyStart: true
+Bundle-ClassPath: lib/dom4j-1.6.1.jar,
+ .
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/META-INF/MANIFEST.MF
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/build.properties
===================================================================
--- trunk/smooks/tests/org.jboss.tools.smooks.test/build.properties
(rev 0)
+++ trunk/smooks/tests/org.jboss.tools.smooks.test/build.properties 2008-09-09 10:01:10
UTC (rev 10154)
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ lib/dom4j-1.6.1.jar
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/build.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/tests/org.jboss.tools.smooks.test/lib/dom4j-1.6.1.jar
===================================================================
(Binary files differ)
Property changes on: trunk/smooks/tests/org.jboss.tools.smooks.test/lib/dom4j-1.6.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/Activator.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/Activator.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/Activator.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,50 @@
+package org.jboss.tools.smooks.test;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.smooks.test";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/Activator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,37 @@
+package org.jboss.tools.smooks.test.java2java;
+
+
+import java.util.Date;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class Header {
+ private Long customerNumber = 1234L;
+ private String customerName = "Buzz Lightyear";
+
+ public Long getCustomerNumber() {
+ return customerNumber;
+ }
+
+ public void setCustomerNumber(Long customerNumber) {
+ this.customerNumber = customerNumber;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("customerNumber: " + customerNumber + ",
");
+ stringBuilder.append("customerName: " + customerName);
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Header.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,62 @@
+/*
+ Milyn - Copyright (C) 2006
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License (version 2.1) as published by the Free Software
+ Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ See the GNU Lesser General Public License for more details:
+
http://www.gnu.org/licenses/lgpl.txt
+*/
+package org.jboss.tools.smooks.test.java2java;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class LineItem {
+ private String productCode;
+ private int unitQuantity;
+ private BigDecimal unitPrice;
+
+ public String getProductCode() {
+ return productCode;
+ }
+
+ public void setProductCode(String productCode) {
+ this.productCode = productCode;
+ }
+
+ public int getUnitQuantity() {
+ return unitQuantity;
+ }
+
+ public void setUnitQuantity(int unitQuantity) {
+ this.unitQuantity = unitQuantity;
+ }
+
+ public BigDecimal getUnitPrice() {
+ return unitPrice;
+ }
+
+ public void setUnitPrice(BigDecimal unitPrice) {
+ this.unitPrice = unitPrice;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("{productCode: " + productCode + " |
");
+ stringBuilder.append("unitQuantity: " + unitQuantity + " |
");
+ stringBuilder.append("unitPrice: " + unitPrice + "}");
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineItem.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineOrder.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineOrder.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineOrder.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,64 @@
+/*
+ Milyn - Copyright (C) 2006
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License (version 2.1) as published by the Free Software
+ Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ See the GNU Lesser General Public License for more details:
+
http://www.gnu.org/licenses/lgpl.txt
+*/
+package org.jboss.tools.smooks.test.java2java;
+
+import java.util.Arrays;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class LineOrder {
+ private String customerId;
+ private String customerName;
+ private LineItem[] lineItems;
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public LineItem[] getLineItems() {
+ return lineItems;
+ }
+
+ public void setLineItems(LineItem[] lineItems) {
+ this.lineItems = lineItems;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("Class: " + getClass().getName() +
"\n");
+ stringBuilder.append("\tcustomerId: " + customerId + "\n");
+ stringBuilder.append("\tcustomerName: " + customerName +
"\n");
+ if(lineItems != null) {
+ stringBuilder.append("\tlineItems: " + Arrays.asList(lineItems));
+ }
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/LineOrder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,64 @@
+package org.jboss.tools.smooks.test.java2java;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Arrays;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class Order {
+ private Header header;
+ private List<OrderItem> modifyOrderItems;
+
+ private int[] ages;
+ public int[] getAges() {
+ return ages;
+ }
+
+ public void setAges(int[] ages) {
+ this.ages = ages;
+ }
+
+ public Order() {
+ header = new Header();
+ modifyOrderItems = new ArrayList<OrderItem>();
+ modifyOrderItems.add(new OrderItem());
+ modifyOrderItems.add(new OrderItem());
+
+ modifyOrderItems.get(0).setProductId(111);
+ modifyOrderItems.get(0).setQuantity(2);
+ modifyOrderItems.get(0).setPrice(10.99);
+
+ modifyOrderItems.get(1).setProductId(222);
+ modifyOrderItems.get(1).setQuantity(4);
+ modifyOrderItems.get(1).setPrice(25.50);
+ }
+
+ public Header getHeader() {
+ return header;
+ }
+
+ public void setHeader(Header header) {
+ this.header = header;
+ }
+
+ public List<OrderItem> getOrderItems() {
+ return modifyOrderItems;
+ }
+
+ public void setOrderItems(List<OrderItem> orderItems) {
+ this.modifyOrderItems = orderItems;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("Class: " + getClass().getName() +
"\n");
+ stringBuilder.append("\theader: " + header + "\n");
+ stringBuilder.append("\torderItems: " + modifyOrderItems);
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Order.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/OrderItem.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/OrderItem.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/OrderItem.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,45 @@
+package org.jboss.tools.smooks.test.java2java;
+
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class OrderItem {
+ private long productId;
+ private Integer quantity;
+ private double price;
+
+ public long getProductId() {
+ return productId;
+ }
+
+ public void setProductId(long productId) {
+ this.productId = productId;
+ }
+
+ public Integer getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(Integer quantity) {
+ this.quantity = quantity;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("{productId: " + productId + " | ");
+ stringBuilder.append("quantity: " + quantity + " | ");
+ stringBuilder.append("price: " + price + "}");
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/OrderItem.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.test.java2java;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
+import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.graphical.GraphicalPackage;
+import org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer;
+import org.milyn.xsd.smooks.DocumentRoot;
+import org.milyn.xsd.smooks.SmooksPackage;
+import org.milyn.xsd.smooks.SmooksResourceListType;
+import org.milyn.xsd.smooks.util.SmooksResourceFactoryImpl;
+
+/**
+ * @author Dart Peng Date : 2008-9-1
+ */
+public class SmooksAnalyzerTester extends TestCase {
+ public void testParse() {
+ Registry.INSTANCE.put(GraphicalPackage.eNS_URI,
+ GraphicalPackage.eINSTANCE);
+ Registry.INSTANCE.put(SmooksPackage.eNS_URI, SmooksPackage.eINSTANCE);
+ try {
+ ClassLoader classLoader = SmooksAnalyzerTester.class
+ .getClassLoader();
+ Resource resource = new SmooksResourceFactoryImpl()
+ .createResource(null);
+ Resource gr = new XMLResourceFactoryImpl().createResource(null);
+ InputStream stream1 = classLoader
+ .getResourceAsStream("org/jboss/tools/smooks/test/java2java/Test.xml");
+ InputStream stream2 = classLoader
+ .getResourceAsStream("org/jboss/tools/smooks/test/java2java/Test.smooks.graph");
+ gr.load(stream2, Collections.EMPTY_MAP);
+ GraphInformations graph = (GraphInformations) gr.getContents().get(
+ 0);
+
+ resource.load(stream1, Collections.EMPTY_MAP);
+ JavaBeanAnalyzer sourceModelAnalyzer = new JavaBeanAnalyzer();
+ JavaBeanAnalyzer targetModelAnalyzer = new JavaBeanAnalyzer();
+ JavaBeanAnalyzer connectionsAnalyzer = new JavaBeanAnalyzer();
+ SmooksResourceListType listType = ((DocumentRoot) resource
+ .getContents().get(0)).getSmooksResourceList();
+ Object source = sourceModelAnalyzer.buildSourceInputObjects(graph,
+ listType, null, classLoader);
+ Object target = targetModelAnalyzer.buildTargetInputObjects(graph,
+ listType, null, classLoader);
+ List connections = connectionsAnalyzer.analyzeMappingSmooksModel(
+ listType, source, target);
+ System.out.println(connections);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+}
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/SmooksAnalyzerTester.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.smooks.graph
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.smooks.graph
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.smooks.graph 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="ASCII"?>
+<GraphInformations
xmlns="http://www.jboss.org/tools/smooks/graphicalInformation">
+ <mappingType
targetTypeID="org.jboss.tools.smooks.ui.viewerInitor.javabean"
sourceTypeID="org.jboss.tools.smooks.ui.viewerInitor.javabean"/>
+</GraphInformations>
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ASCII"?>
+<smooks-resource-list
xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+ <resource-config selector="srcmodel.Order">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">LineOrder</param>
+ <param name="beanClass">targetmodel.LineOrder</param>
+ <param name="bindings">
+ <binding property="customerId"
+ selector="header customerNumber" />
+ <binding property="customerName"
+ selector="header customerName" />
+ <binding property="lineItems" selector="${lineItems}" />
+ </param>
+ </resource-config>
+ <resource-config selector="orderItems">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">lineItems</param>
+ <param name="beanClass">targetmodel.LineItem[]</param>
+ <param name="bindings">
+ <binding property="LineItem" selector="${LineItem}" />
+ </param>
+ </resource-config>
+ <resource-config selector="srcmodel.OrderItem">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">LineItem</param>
+ <param name="beanClass">targetmodel.LineItem</param>
+ <param name="bindings">
+ <binding property="productCode"
+ selector="srcmodel.OrderItem productId" />
+ <binding property="unitPrice"
+ selector="srcmodel.OrderItem price" />
+ <binding property="unitPrice"
+ selector="srcmodel.OrderItem Ate" />
+ <binding property="unitQuantity"
+ selector="srcmodel.OrderItem quantity" />
+ </param>
+ </resource-config>
+</smooks-resource-list>
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/java2java/Test.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,56 @@
+package org.jboss.tools.smooks.test.xml;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.dom4j.DocumentException;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.util.XSDResourceFactoryImpl;
+import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
+import org.jboss.tools.smooks.ui.modelparser.ParseEngine;
+import org.jboss.tools.smooks.xml.model.XMLObjectAnalyzer;
+import org.jboss.tools.smooks.xml.model.XMLStrucutredModelParser;
+import org.jboss.tools.smooks.xsd.model.XSDStructuredModelContentProvider;
+
+public class ModelTest extends TestCase {
+ public void testModelTrasform() throws IOException {
+ Resource resource = new
XSDResourceFactoryImpl().createResource(URI.createPlatformResourceURI(
+ "org/jboss/tools/smooks/test/xml/smooks-1.1.xsd", false));
+ InputStream aa = ModelTest.class.getClassLoader().getResourceAsStream(
+ "org/jboss/tools/smooks/test/xml/smooks-1.1.xsd");
+ resource.load(aa, Collections.EMPTY_MAP);
+ XSDSchema schema = (XSDSchema) resource.getContents().get(0);
+ ParseEngine engine = new ParseEngine();
+ AbstractStructuredDataModel model = engine.parseModel(schema,
+ new XSDStructuredModelContentProvider(),
+ new XMLStrucutredModelParser());
+ printStructuredDataModel(model);
+ }
+
+ protected void printStructuredDataModel(AbstractStructuredDataModel model) {
+ System.out
+ .println(model.getLabelName() + " - " + model.getTypeString());
+ List children = model.getChildren();
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ AbstractStructuredDataModel child = (AbstractStructuredDataModel) iterator
+ .next();
+ printStructuredDataModel(child);
+ }
+ }
+
+ public void testXMLfragment() throws FileNotFoundException,
+ DocumentException {
+ XMLObjectAnalyzer an = new XMLObjectAnalyzer();
+ InputStream aa = ModelTest.class.getClassLoader().getResourceAsStream(
+ "org/jboss/tools/smooks/test/xml/pom.xml");
+ System.out.println(an.analyze(aa).toString());
+ }
+}
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/ModelTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/XMLStructuredModelBuilderTest.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/XMLStructuredModelBuilderTest.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/XMLStructuredModelBuilderTest.java 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,723 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.test.xml;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDAttributeUse;
+import org.eclipse.xsd.XSDComplexTypeDefinition;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDModelGroup;
+import org.eclipse.xsd.XSDParticle;
+import org.eclipse.xsd.XSDParticleContent;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDSimpleTypeDefinition;
+import org.eclipse.xsd.XSDTypeDefinition;
+import org.eclipse.xsd.util.XSDResourceFactoryImpl;
+
+/**
+ * @author Dart Peng
+ *
+ * @CreateTime Jul 24, 2008
+ */
+public class XMLStructuredModelBuilderTest {
+ public static void main(String[] args) throws IOException {
+ Resource resource = new XSDResourceFactoryImpl().createResource(URI
+ .createFileURI("/root/Public/smooks_1_0.xsd"));
+ resource.load(Collections.EMPTY_MAP);
+ XSDSchema schema = (XSDSchema) resource.getContents().get(0);
+ List elements = schema.getElementDeclarations();
+ for (Iterator iterator = elements.iterator(); iterator.hasNext();) {
+ XSDElementDeclaration elementDec = (XSDElementDeclaration) iterator
+ .next();
+ // if (elementDec.isAbstract())
+ // continue;
+ // System.out.println(elementDec.isAbstract());
+ XSDTypeDefinition td = elementDec.getType();
+ XSDSimpleTypeDefinition st = td.getSimpleType();
+ System.out.println("Element Name :" + elementDec.getAliasName());
+ // XSDComplexTypeDefinition ct = td.getComplexType();
+ if (st != null) {
+ System.out.println("\tSimple Type :" + st.toString());
+ }
+ if (td instanceof XSDComplexTypeDefinition) {
+ XSDComplexTypeDefinition ctype = (XSDComplexTypeDefinition) td;
+
+ XSDParticle xsdparticle = td.getComplexType();
+ if (xsdparticle != null) {
+ XSDParticleContent term = xsdparticle.getContent();//.getTerm
+ // ();
+ if (term instanceof XSDModelGroup) {
+ List list = ((XSDModelGroup) term).getParticles();
+ for (Iterator iterator2 = list.iterator(); iterator2
+ .hasNext();) {
+ XSDParticle xp = (XSDParticle) iterator2.next();
+ XSDParticleContent content = xp.getContent();
+ if (content instanceof XSDElementDeclaration) {
+ XSDElementDeclaration child = (XSDElementDeclaration) content;
+ String refStr = "";
+ if (child.isElementDeclarationReference()) {
+ child = child
+ .getResolvedElementDeclaration();
+ refStr = "Reference";
+ }
+ XSDTypeDefinition childType = child
+ .getTypeDefinition();
+
+ System.out.println("\t" + refStr
+ + "Element Name: "
+ + child.getAliasName() + " - "
+ + childType);
+
+ }
+ }
+ }
+ }
+ List attributeContents = ctype.getAttributeContents();
+ for (Iterator iterator2 = attributeContents.iterator(); iterator2
+ .hasNext();) {
+ XSDAttributeUse attributeUse = (XSDAttributeUse) iterator2
+ .next();
+ XSDAttributeDeclaration attribute = attributeUse
+ .getAttributeDeclaration();
+ System.out.println("\tAttributes :"
+ + attribute.getAliasName() + " - "
+ + attribute.getTypeDefinition().getQName());
+ }
+ continue;
+ } else {
+ // XSDSimpleTypeDefinition stype = td.getSimpleType();
+ // System.out.println("Simple Type :" +stype.toString());
+ }
+ System.out.println();
+ }
+ }
+ // private static final String SCHEMA_NAMESPACE =
+ // "http://www.w3.org/2001/XMLSchema";
+ // private static String destDir;
+ //
+ // public static void main(String[] args) throws IOException {
+ // // need to do this in order to have Eclipse's XSD 'resource'
+ // // support work,
+ // Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+ // "xsd", new XSDResourceFactoryImpl());
+ //
+ // String filename = args[0];
+ // if (args.length > 1) {
+ // destDir = args[1];
+ // } else {
+ // destDir = ".";
+ // }
+ // XSDSchema mainSchema = loadSchema(filename);
+ // processSchema(mainSchema);
+ // }
+ //
+ // private static XSDSchema loadSchema(String filename) throws IOException {
+ // ResourceSet resourceSet = new ResourceSetImpl();
+ // XSDResourceImpl resource = (XSDResourceImpl) resourceSet
+ // .createResource(URI.createURI("*.xsd"));
+ // resource.setURI(URI.createFileURI(filename));
+ // resource.load(resourceSet.getLoadOptions());
+ // XSDSchema mainSchema = resource.getSchema();
+ // return mainSchema;
+ // }
+ //
+ // private static void processSchema(XSDSchema schema) throws IOException {
+ // processSchemaCreateTypes(schema);
+ // processSchemaCreateUnmarshaler(schema);
+ // }
+ //
+ // private static void processSchemaCreateTypes(XSDSchema schema)
+ // throws IOException {
+ // List types = schema.getTypeDefinitions();
+ // for (Iterator i = types.iterator(); i.hasNext();) {
+ // XSDTypeDefinition typeDef = (XSDTypeDefinition) i.next();
+ // if (typeDef instanceof XSDComplexTypeDefinition) {
+ // processComplexType((XSDComplexTypeDefinition) typeDef);
+ // }
+ // }
+ // }
+ //
+ // /**
+ // * Handle a top-level complex type definition by creating an AS class.
+ // */
+ // private static void processComplexType(XSDComplexTypeDefinition typeDef)
+ // throws IOException {
+ // ASSourceFactory fact = new ASSourceFactory();
+ // CompilationUnit unit = fact.newClass(typeName(typeDef));
+ // ASClassType clazz = (ASClassType) unit.getType();
+ // processComplexTypeBaseType(typeDef, clazz);
+ // processComplexTypeAnnotation(typeDef, clazz);
+ // processAllComplexTypeAttributes(typeDef, clazz);
+ // processAllComplexTypeElements(typeDef, clazz);
+ // fact.write(destDir, unit);
+ // }
+ //
+ // /**
+ // * Super-type handling
+ // */
+ // private static void processComplexTypeBaseType(
+ // XSDComplexTypeDefinition typeDef, ASClassType clazz) {
+ // XSDTypeDefinition baseType = typeDef.getBaseType();
+ // if (!isXSDAnyType(baseType)) {
+ // clazz.setSuperclass(typeName(baseType));
+ // }
+ // }
+ //
+ // /**
+ // * turn attrubutes defined by the complexType into class properties
+ // */
+ // private static void processAllComplexTypeAttributes(
+ // XSDComplexTypeDefinition typeDef, ASClassType clazz) {
+ // List attrs = typeDef.getAttributeContents();
+ // for (Iterator i = attrs.iterator(); i.hasNext();) {
+ // XSDAttributeGroupContent attrContent = (XSDAttributeGroupContent) i
+ // .next();
+ // if (attrContent instanceof XSDAttributeUse) {
+ // processComplexTypeAttribute((XSDAttributeUse) attrContent,
+ // clazz);
+ // }
+ // }
+ // }
+ //
+ // /**
+ // * turn this particular attribute into a property on the given AS class
+ // */
+ // private static void processComplexTypeAttribute(XSDAttributeUse attrUse,
+ // ASClassType clazz) {
+ // XSDAttributeDeclaration attrDecl = attrUse.getAttributeDeclaration();
+ // ASField field = clazz.newField(fieldName(attrDecl), Visibility.PUBLIC,
+ // typeName(attrDecl.getTypeDefinition()));
+ // String doc = findDocumentation(attrDecl.getAnnotation());
+ // if (doc != null) {
+ // field.setDocComment(doc);
+ // }
+ // }
+ //
+ // /**
+ // * create a field name based on the given attribute declaration
+ // */
+ // private static String fieldName(XSDAttributeDeclaration attrDecl) {
+ // // TODO: name sanitization etc.
+ // return attrDecl.getName();
+ // }
+ //
+ // /**
+ // * add any annotation on the given complexType as the documentation
+ // comment
+ // * for the given AS class.
+ // */
+ // private static void processComplexTypeAnnotation(
+ // XSDComplexTypeDefinition typeDef, ASClassType clazz) {
+ // String doc = findDocumentation(typeDef.getAnnotation());
+ // if (doc != null) {
+ // clazz.setDocComment("\n" + doc + "\n");
+ // }
+ // }
+ //
+ // /**
+ // * attempt to extract simple text from the documentation element of the
+ // * given annotation.
+ // */
+ // private static String findDocumentation(XSDAnnotation annotation) {
+ // if (annotation != null) {
+ // List docs = annotation.getUserInformation();
+ // for (Iterator i = docs.iterator(); i.hasNext();) {
+ // // maybe we can do better..?
+ // Element doc = (Element) i.next();
+ // return preProcessComment(doc.getTextContent());
+ // }
+ // }
+ // return null;
+ // }
+ //
+ // /**
+ // * Strip initial whitespace from all lines in the given string, and return
+ // a
+ // * string which starts each line with a single space character, ready to
+ // go
+ // * into a javadoc comment.
+ // */
+ // private static String preProcessComment(String text) {
+ // return text.replaceFirst("\\A\\s*", "
").replaceAll("([\n\r])\\s+",
+ // "$1 ");
+ // }
+ //
+ // /**
+ // * returns the name of the AS type that holds data for the given component
+ // * of the schema
+ // */
+ // private static String typeName(XSDNamedComponent named) {
+ // if (named instanceof XSDSimpleTypeDefinition) {
+ // XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition) named;
+ // return lookupTypeName(simpleType);
+ // }
+ // if (isXSDAnyType(named)) {
+ // return "XML";
+ // }
+ // String pkgName = toPackageName(named.getTargetNamespace());
+ // return pkgName + "." + named.getName();
+ // }
+ //
+ // private static boolean isXSDAnyType(XSDNamedComponent named) {
+ // return "anyType".equals(named.getName())
+ // && named.getTargetNamespace().equals(SCHEMA_NAMESPACE);
+ // }
+ //
+ // private static String toPackageName(String targetNamespace) {
+ // URI uri = URI.createURI(targetNamespace);
+ // String name = reverseJoin(sanitize(uri.host().split("\\.")),
".");
+ // if (uri.hasPath()) {
+ // String path = uri.path().replaceAll("/+",
"/").replaceFirst("\\A/",
+ // "");
+ // name = name + "." + join(sanitize(path.split("/")),
".");
+ // }
+ // return name;
+ // }
+ //
+ // private static String[] sanitize(String[] strings) {
+ // for (int i = 0; i < strings.length; i++) {
+ // strings[i] = sanitize(strings[i]);
+ // }
+ // return strings;
+ // }
+ //
+ // private static String sanitize(String string) {
+ // StringBuffer result = new StringBuffer();
+ // if (!Character.isJavaIdentifierStart(string.charAt(0))
+ // && Character.isJavaIdentifierPart(string.charAt(0))) {
+ // // e.g. if this fragment starts with a number, prefix
+ // // it with an underscore to create a valid identifier
+ // result.append("_");
+ // }
+ // for (int i = 0; i < string.length(); i++) {
+ // char c = string.charAt(i);
+ // if (Character.isJavaIdentifierPart(c)) {
+ // result.append(c);
+ // } else {
+ // result.append("_");
+ // }
+ // }
+ // return result.toString();
+ // }
+ //
+ // private static String reverseJoin(String[] strings, String delimiter) {
+ // StringBuffer result = new StringBuffer();
+ // for (int i = strings.length - 1; i >= 0; i--) {
+ // result.append(strings[i]);
+ // if (i > 0) {
+ // result.append(delimiter);
+ // }
+ // }
+ // return result.toString();
+ // }
+ //
+ // private static String join(String[] strings, String delimiter) {
+ // StringBuffer result = new StringBuffer();
+ // for (int i = 0; i < strings.length; i++) {
+ // if (i > 0) {
+ // result.append(delimiter);
+ // }
+ // result.append(strings[i]);
+ // }
+ // return result.toString();
+ // }
+ //
+ // /**
+ // * tries to map XML Schema standard types to AS types
+ // */
+ // private static String lookupTypeName(XSDSimpleTypeDefinition simpleType)
+ // {
+ // if (simpleType == null) {
+ // return null;
+ // }
+ // if (simpleType.getTargetNamespace().equals(SCHEMA_NAMESPACE)) {
+ // if (simpleType.getName().equals("string")) {
+ // return "String";
+ // }
+ // if (simpleType.getName().equals("int")) {
+ // return "Number";
+ // }
+ // if (simpleType.getName().equals("float")) {
+ // return "Number";
+ // }
+ // System.err.println("Unhandled type " + simpleType.getURI());
+ // return null;
+ // }
+ // return lookupTypeName(simpleType.getBaseTypeDefinition());
+ // }
+ //
+ // /**
+ // * adds all elements declared by the given complexType as properties to
+ // the
+ // * given AS class
+ // */
+ // private static void processAllComplexTypeElements(
+ // XSDComplexTypeDefinition typeDef, ASClassType clazz) {
+ // XSDComplexTypeContent complexContent = typeDef.getContent();
+ // if (complexContent instanceof XSDParticle) {
+ // XSDParticle particle = (XSDParticle) complexContent;
+ // XSDParticleContent particleContent = particle.getContent();
+ // if (particleContent instanceof XSDModelGroup) {
+ // XSDModelGroup modelGroup = (XSDModelGroup) particleContent;
+ // if (modelGroup.getCompositor().equals(
+ // XSDCompositor.SEQUENCE_LITERAL)) {
+ // processComplexTypeSequence(typeDef, modelGroup, clazz);
+ // }
+ // }
+ // }
+ // }
+ //
+ // /**
+ // * auxiliary function used by processAllComplexTypeElements() to handle
+ // the
+ // * xs:sequence within an xs:complexType
+ // */
+ // private static void processComplexTypeSequence(
+ // XSDComplexTypeDefinition typeDef, XSDModelGroup modelGroup,
+ // ASClassType clazz) {
+ // List particles = modelGroup.getParticles();
+ // for (Iterator i = particles.iterator(); i.hasNext();) {
+ // XSDParticle part = (XSDParticle) i.next();
+ // XSDParticleContent partContent = part.getContent();
+ // if (partContent instanceof XSDElementDeclaration) {
+ // processComplexTypeElementDeclaration(part,
+ // (XSDElementDeclaration) partContent, clazz);
+ // }
+ // }
+ // }
+ //
+ // /**
+ // * handles an xs:element within the xs:sequence of an xs:complexType by
+ // * adding a property to the given AS class.
+ // */
+ // private static void processComplexTypeElementDeclaration(XSDParticle
+ // part,
+ // XSDElementDeclaration decl, ASClassType clazz) {
+ // if (decl.isElementDeclarationReference()) {
+ // decl = decl.getResolvedElementDeclaration();
+ // }
+ // XSDElementDeclaration listElement = getElementIfContainerForList(decl);
+ // String typeName = null;
+ // String doc = findDocumentation(decl.getAnnotation());
+ // if (listElement != null) {
+ // typeName = "Array";
+ // if (doc == null) {
+ // doc = "";
+ // } else {
+ // doc += "\n\n";
+ // }
+ // doc += " Elements of type {@link "
+ // + typeName(listElement.getType()) + "}";
+ // } else if (isMultiplyOccuring(part)) {
+ // typeName = "Array";
+ // if (doc == null) {
+ // doc = "";
+ // } else {
+ // doc += "\n\n";
+ // }
+ // if (decl.getType() != null) {
+ // doc += "Elements of type {@link " + typeName(decl.getType())
+ // + "}\n";
+ // }
+ // doc += "minOccurs " + describeMultiplicity(part.getMinOccurs())
+ // + ", maxOccurs "
+ // + describeMultiplicity(part.getMaxOccurs());
+ // } else if (decl.getType() != null) {
+ // typeName = typeName(decl.getType());
+ // }
+ // if (typeName == null) {
+ // System.err.println("no AS type resulted from: " + decl.getType());
+ // }
+ // ASField field = clazz.newField(fieldName(decl), Visibility.PUBLIC,
+ // typeName);
+ // if (doc != null) {
+ // field.setDocComment(doc);
+ // }
+ // }
+ //
+ // /**
+ // * returns the name of the AS field which should hold values of the given
+ // * element declaration.
+ // */
+ // private static String fieldName(XSDElementDeclaration decl) {
+ // // TODO: sanitise value, etc.
+ // return decl.getName();
+ // }
+ //
+ // /**
+ // * If the given element appears to be implementing a list-container design
+ // * pattern then return the definition of the element repeated in the list
+ // */
+ // private static XSDElementDeclaration getElementIfContainerForList(
+ // XSDElementDeclaration decl) {
+ // XSDTypeDefinition typeDef = decl.getAnonymousTypeDefinition();
+ // if (typeDef == null) {
+ // return null;
+ // }
+ // // look for the definition pattern which allows documents like:
+ // // ...<eggs><egg/><egg/><egg/></eggs>...
+ // // so that we can add a 'eggs' array to the defining class,
+ // // rather than creating a useless 'Eggs' class which just holds
+ // // the array.
+ // // TODO: check for attrs on container,
+ // XSDParticle ctype = typeDef.getComplexType();
+ // XSDParticleContent particleContent = ctype.getContent();
+ // if (particleContent instanceof XSDModelGroup) {
+ // XSDModelGroup modelGroup = (XSDModelGroup) particleContent;
+ // if (modelGroup.getCompositor().equals(
+ // XSDCompositor.SEQUENCE_LITERAL)) {
+ // List particles = modelGroup.getParticles();
+ // if (particles.size() == 1) {
+ // XSDParticle part = (XSDParticle) particles.get(0);
+ // XSDParticleContent partContent = part.getContent();
+ // if (partContent instanceof XSDElementDeclaration) {
+ // if (isMultiplyOccuring(part)) {
+ // return (XSDElementDeclaration) partContent;
+ // }
+ // }
+ // }
+ // }
+ // }
+ //
+ // return null;
+ // }
+ //
+ // /**
+ // * returns true if the given particle's maxOccurs attribute is either
+ // * 'unbounded', or an integer greater than 1.
+ // */
+ // private static boolean isMultiplyOccuring(XSDParticle part) {
+ // int max = part.getMaxOccurs();
+ // return max == -1 || max > 1; // -1 : unbounded
+ // }
+ //
+ // /**
+ // * returns a text string with either the value "unbounded" if the given
+ // * integer is -1, or the decimal representation of the given integer
+ // * otherwise.
+ // */
+ // private static String describeMultiplicity(int occurs) {
+ // if (occurs == -1) {
+ // return "unbounded";
+ // } else {
+ // return String.valueOf(occurs);
+ // }
+ // }
+ //
+ // // ---- marshaling / unmarshaling ----
+ //
+ // private static void processSchemaCreateUnmarshaler(XSDSchema schema)
+ // throws IOException {
+ // ASSourceFactory fact = new ASSourceFactory();
+ // CompilationUnit unit = fact.newClass(toPackageName(schema
+ // .getTargetNamespace())
+ // + ".Unmarshaler");
+ // ASClassType clazz = (ASClassType) unit.getType();
+ // List types = schema.getTypeDefinitions();
+ // for (Iterator i = types.iterator(); i.hasNext();) {
+ // XSDTypeDefinition typeDef = (XSDTypeDefinition) i.next();
+ // if (typeDef instanceof XSDComplexTypeDefinition) {
+ // XSDComplexTypeDefinition ctype = (XSDComplexTypeDefinition) typeDef;
+ // String typeName = typeName(ctype);
+ // ASMethod meth = clazz.newMethod(unmarshalerMethodFor(ctype),
+ // Visibility.PUBLIC, typeName(ctype));
+ // meth.addParam("thisElement", "XML");
+ // meth.addStmt("var _result:" + typeName + " = new " + typeName
+ // + "()");
+ // processComplexTypeBaseTypeUnmarshal(ctype, meth);
+ // processAllComplexTypeAttributesUnmarshal(ctype, meth);
+ // processAllComplexTypeElementsUnmarshal(ctype, meth);
+ // meth.addStmt("return _result");
+ // }
+ // }
+ // fact.write(destDir, unit);
+ // }
+ //
+ // private static void processComplexTypeBaseTypeUnmarshal(
+ // XSDComplexTypeDefinition ctype, ASMethod meth) {
+ // XSDTypeDefinition baseType = ctype.getBaseType();
+ // if (!isXSDAnyType(baseType)) {
+ // // TODO: handle base class initialisation
+ // }
+ // }
+ //
+ // private static void processAllComplexTypeAttributesUnmarshal(
+ // XSDComplexTypeDefinition ctype, ASMethod meth) {
+ // List attrs = ctype.getAttributeContents();
+ // for (Iterator i = attrs.iterator(); i.hasNext();) {
+ // XSDAttributeGroupContent attrContent = (XSDAttributeGroupContent) i
+ // .next();
+ // if (attrContent instanceof XSDAttributeUse) {
+ // processComplexTypeAttributeUnmarshal(
+ // (XSDAttributeUse) attrContent, meth);
+ // }
+ // }
+ // }
+ //
+ // private static void processComplexTypeAttributeUnmarshal(
+ // XSDAttributeUse attrUse, ASMethod meth) {
+ // XSDAttributeDeclaration attrDecl = attrUse.getAttributeDeclaration();
+ // String accessExpr = "thisElement." + attrAccess(attrDecl);
+ // accessExpr = doBasicTypeCoercion(accessExpr, attrDecl.getType());
+ // meth.addStmt("_result." + fieldName(attrDecl) + " = " +
accessExpr);
+ // }
+ //
+ // private static String doBasicTypeCoercion(String expr,
+ // XSDTypeDefinition type) {
+ // if (typeIsA(type, SCHEMA_NAMESPACE, "string")) {
+ // return expr;
+ // }
+ // if (typeIsA(type, SCHEMA_NAMESPACE, "int")
+ // || typeIsA(type, SCHEMA_NAMESPACE, "float")) {
+ // return "Number(" + expr + ")";
+ // }
+ // System.err.println("Unable to produce type convertion expression for "
+ // + type.getURI());
+ // return expr + " /* <-- didn't know how to convert */";
+ // }
+ //
+ // private static boolean typeIsA(XSDTypeDefinition type, String namespace,
+ // String name) {
+ // return (type.getName().equals(name) && type.getTargetNamespace()
+ // .equals(namespace))
+ // || XSDSchemaQueryTools.isTypeDerivedFrom(type, namespace, name);
+ // }
+ //
+ // private static String attrAccess(XSDAttributeDeclaration attrDecl) {
+ // if (isValidIdent(attrDecl.getName())) {
+ // return "@" + attrDecl.getName();
+ // }
+ // return "@[" + ASSourceFactory.str(attrDecl.getName()) + "]";
+ // }
+ //
+ // private static boolean isValidIdent(String name) {
+ // if (!Character.isJavaIdentifierStart(name.charAt(0))) {
+ // return false;
+ // }
+ // for (int i = 1; i < name.length(); i++) {
+ // if (!Character.isJavaIdentifierPart(name.charAt(0))) {
+ // return false;
+ // }
+ // }
+ // return true;
+ // }
+ //
+ // private static void processAllComplexTypeElementsUnmarshal(
+ // XSDComplexTypeDefinition typeDef, ASMethod meth) {
+ // XSDComplexTypeContent complexContent = typeDef.getContent();
+ // if (complexContent instanceof XSDParticle) {
+ // XSDParticle particle = (XSDParticle) complexContent;
+ // XSDParticleContent particleContent = particle.getContent();
+ // if (particleContent instanceof XSDModelGroup) {
+ // XSDModelGroup modelGroup = (XSDModelGroup) particleContent;
+ // if (modelGroup.getCompositor().equals(
+ // XSDCompositor.SEQUENCE_LITERAL)) {
+ // processComplexTypeSequenceUnmarshal(typeDef, modelGroup,
+ // meth);
+ // }
+ // }
+ // }
+ // }
+ //
+ // private static void processComplexTypeSequenceUnmarshal(
+ // XSDComplexTypeDefinition typeDef, XSDModelGroup modelGroup,
+ // ASMethod meth) {
+ // List particles = modelGroup.getParticles();
+ // if (!particles.isEmpty()) {
+ // // meth.addComment(" process child elements,");
+ // meth.addStmt("var _children:XMLList = thisElement.children()");
+ // meth.addStmt("var _seq:int = 0");
+ // }
+ // for (Iterator i = particles.iterator(); i.hasNext();) {
+ // StatementContainer block = meth;
+ // XSDParticle part = (XSDParticle) i.next();
+ // XSDParticleContent partContent = part.getContent();
+ // if (partContent instanceof XSDElementDeclaration) {
+ // XSDElementDeclaration elementDecl = (XSDElementDeclaration) partContent;
+ // if (elementDecl.isElementDeclarationReference()) {
+ // elementDecl = elementDecl.getResolvedElementDeclaration();
+ // }
+ // if (isOptional(part)) {
+ // block = meth.newIf("_children[_seq].name()==new QName("
+ // + ASSourceFactory.str(elementDecl
+ // .getTargetNamespace()) + ", "
+ // + ASSourceFactory.str(elementDecl.getName()));
+ // }
+ // processComplexTypeSequenceElementDeclarationUnmarshal(part,
+ // elementDecl, block);
+ // } else {
+ // meth.addStmt("_seq++");
+ // }
+ // }
+ // }
+ //
+ // private static boolean isOptional(XSDParticle part) {
+ // return part.getMinOccurs() == 0 && part.getMaxOccurs() == 1;
+ // }
+ //
+ // private static void
+ // processComplexTypeSequenceElementDeclarationUnmarshal(
+ // XSDParticle part, XSDElementDeclaration decl,
+ // StatementContainer block) {
+ // String accessExpr = "_children[_seq++]";
+ // XSDTypeDefinition typeDef = decl.getType();
+ // String fieldAccess = "_result." + fieldName(decl);
+ // if (typeDef instanceof XSDSimpleTypeDefinition) {
+ // accessExpr = doBasicTypeCoercion(accessExpr + ".text()", typeDef);
+ // block.addStmt(fieldAccess + " = " + accessExpr);
+ // } else {
+ // XSDElementDeclaration listElement = getElementIfContainerForList(decl);
+ // if (listElement == null) {
+ // String unmarshaled = unmarshaledFrom(typeDef, accessExpr);
+ // if (isMultiplyOccuring(part)) {
+ // block.addStmt(fieldAccess + " = new Array()");
+ // block = block
+ // .newWhile("_seq<_children.length() && _children[_seq].name()==new
QName("
+ // + ASSourceFactory.str(decl
+ // .getTargetNamespace())
+ // + ", "
+ // + ASSourceFactory.str(decl.getName()) + ")");
+ // block.addStmt(fieldAccess + ".push(" + unmarshaled + ")");
+ // } else {
+ // block.addStmt(fieldAccess + " = " + unmarshaled);
+ // }
+ // } else {
+ // block.addStmt(fieldAccess + " = new Array()");
+ // StatementContainer loop = block.newForEachIn("var _child:XML",
+ // accessExpr + ".elements()");
+ // String unmarshaled = unmarshaledFrom(listElement.getType(),
+ // "_child");
+ // loop.addStmt(fieldAccess + ".push(" + unmarshaled + ")");
+ // }
+ // }
+ // }
+ //
+ // private static String unmarshaledFrom(XSDTypeDefinition typeDef, String
+ // expr) {
+ // if (isXSDAnyType(typeDef)) {
+ // // result is just the XML node
+ // return expr;
+ // }
+ // return unmarshalerMethodFor(typeDef) + "(" + expr + ")";
+ // }
+ //
+ // private static String unmarshalerMethodFor(XSDTypeDefinition typeDef) {
+ // return "unmarshal" + typeDef.getName();
+ // }
+ // }
+}
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/XMLStructuredModelBuilderTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/pom.xml
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/pom.xml
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/pom.xml 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.milyn</groupId>
+ <artifactId>milyn</artifactId>
+ <version>1.1.1</version>
+ </parent>
+ <name>Milyn Smooks Core</name>
+ <groupId>org.milyn</groupId>
+ <artifactId>milyn-smooks-core</artifactId>
+ <version>${milyn.smooks.core.version}</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.milyn</groupId>
+ <artifactId>milyn-commons</artifactId>
+ <version>${milyn.commons.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>${xstream.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mvel</groupId>
+ <artifactId>mvel</artifactId>
+ <version>1.3.3-java1.5</version>
+ </dependency>
+ <dependency>
+ <groupId>dtdparser</groupId>
+ <artifactId>dtdparser</artifactId>
+ <version>${dtdparser.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>${freemarker.version}</version>
+ </dependency>
+ </dependencies>
+
+ <repositories>
+ <repository>
+ <id>mvel</id>
+ <url>http://repository.codehaus.org</url>
+ </repository>
+ <repository>
+ <id>codehaus.m2.snapshots</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </repository>
+ </repositories>
+
+</project>
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/pom.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.0.xsd
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.0.xsd
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.0.xsd 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+
xmlns:smooks="http://www.milyn.org/xsd/smooks-1.0.xsd"
+
targetNamespace="http://www.milyn.org/xsd/smooks-1.0.xsd"
+ elementFormDefault="qualified">
+
+ <xs:element name="smooks-resource-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">List of Smooks Resource
Configuration.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:profiles"/>
+ <xs:element minOccurs="1" maxOccurs="unbounded"
ref="smooks:abstract-resource-config"/>
+ </xs:sequence>
+ <xs:attribute name="default-target-profile"
type="xs:string"/>
+ <xs:attribute name="default-selector"
type="xs:string"/>
+ <xs:attribute name="default-selector-namespace"
type="xs:anyURI"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="profiles">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">List of
Profiles</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded"
ref="smooks:profile"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="profile">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Profile Configuration.
Basically allows you to specify the name of a
+ base profile along with a list of its sub-profiles.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="base-profile"
type="xs:string" use="required"/>
+ <xs:attribute name="sub-profiles"
type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="abstract-resource-config"
abstract="true"/>
+ <xs:element name="abstract-resource-config"
type="smooks:abstract-resource-config" abstract="true"/>
+
+ <xs:element name="import"
substitutionGroup="smooks:abstract-resource-config">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="smooks:abstract-resource-config">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Smooks Resource
Configuration Import</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="file" use="required"
type="xs:anyURI"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="resource-config"
substitutionGroup="smooks:abstract-resource-config">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="smooks:abstract-resource-config">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Smooks Resource
Configuration</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:resource"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:condition"/>
+ <xs:element minOccurs="0"
maxOccurs="unbounded" ref="smooks:param"/>
+ </xs:sequence>
+ <xs:attribute name="selector"
type="xs:string"/>
+ <xs:attribute name="selector-namespace"
type="xs:anyURI"/>
+ <xs:attribute name="target-profile"
type="xs:string"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="resource">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Resource Configuration
Resource Type (xsl, class etc)</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="type"
type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="condition">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Resource Targetting
Condition</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="evaluator"
type="xs:string"
default="org.milyn.javabean.expression.BeanMapExpressionEvaluator" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="param">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Resource
Parameter</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="xs:anyType">
+ <xs:attribute name="name" type="xs:string"
use="required"/>
+ <xs:attribute name="type"
type="xs:string"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.0.xsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.1.xsd
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.1.xsd
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.1.xsd 2008-09-09
10:01:10 UTC (rev 10154)
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+
xmlns:smooks="http://www.milyn.org/xsd/smooks-1.1.xsd"
+
targetNamespace="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ elementFormDefault="qualified">
+
+ <xs:element name="smooks-resource-list">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">List of Smooks Resource
Configuration.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:params"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:conditions"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:profiles"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:reader"/>
+ <xs:element minOccurs="0" maxOccurs="unbounded"
ref="smooks:abstract-resource-config"/>
+ </xs:sequence>
+ <xs:attribute name="default-target-profile"
type="xs:string"/>
+ <xs:attribute name="default-selector"
type="xs:string"/>
+ <xs:attribute name="default-selector-namespace"
type="xs:anyURI"/>
+ <xs:attribute name="default-condition-ref"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="profiles">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">List of
Profiles</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="1" maxOccurs="unbounded"
ref="smooks:profile"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="profile">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Profile Configuration.
Basically allows you to specify the name of a
+ base profile along with a list of its sub-profiles.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="base-profile"
type="xs:string" use="required"/>
+ <xs:attribute name="sub-profiles"
type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:complexType name="abstract-resource-config"
abstract="true" />
+ <xs:element name="abstract-resource-config"
type="smooks:abstract-resource-config" abstract="true" />
+
+ <xs:complexType name="element-visitor" abstract="true">
+ <xs:complexContent>
+ <xs:extension base="smooks:abstract-resource-config">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Element Visitor
Resource Type</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:condition"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="element-visitor"
type="smooks:element-visitor" abstract="true"
substitutionGroup="smooks:abstract-resource-config" />
+
+ <xs:element name="import"
substitutionGroup="smooks:abstract-resource-config">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="smooks:abstract-resource-config">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Smooks Resource
Configuration Import</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="file" use="required"
type="xs:anyURI"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="reader">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Stream
Reader</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:handlers"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:features"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:params"/>
+ </xs:sequence>
+ <xs:attribute name="class" use="required"
type="xs:string"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="features">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Reader Features
List</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="smooks:setOn" minOccurs="0"
maxOccurs="unbounded" />
+ <xs:element ref="smooks:setOff" minOccurs="0"
maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="setOn">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Set Reader Feature
'On'</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="feature" type="xs:anyURI"
use="required" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="setOff">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Set Reader Feature
'Off'</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="feature" type="xs:anyURI"
use="required"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="handlers">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ Reader Handler Classes.
+ <p/>
+ Set a handler on the reader instance e.g. an EntityResolver,
ErrorHandler etc.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="smooks:handler" minOccurs="1"
maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="handler">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ Handler class name.
+ <p/>
+ This is the Handler class name e.g. an EntityResolver, ErrorHandler
implementation etc.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="class" type="xs:string"
use="required"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="resource-config"
substitutionGroup="smooks:abstract-resource-config">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="smooks:abstract-resource-config">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Smooks Resource
Configuration</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:resource"/>
+ <xs:element minOccurs="0" maxOccurs="1"
ref="smooks:condition"/>
+ <xs:element minOccurs="0"
maxOccurs="unbounded" ref="smooks:param"/>
+ </xs:sequence>
+ <xs:attribute name="selector"
type="xs:string"/>
+ <xs:attribute name="selector-namespace"
type="xs:anyURI"/>
+ <xs:attribute name="target-profile"
type="xs:string"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="resource">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Resource Configuration
Resource Type (xsl, class etc)</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="type"
type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="conditions">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Conditions
List.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="smooks:condition" minOccurs="1"
maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="condition">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Resource Targetting
Condition</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="id" type="xs:string"
/>
+ <xs:attribute name="idRef" type="xs:string"
/>
+ <xs:attribute name="evaluator"
type="xs:string"
default="org.milyn.javabean.expression.BeanMapExpressionEvaluator" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="params">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Resource
Parameters</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="smooks:param" minOccurs="1"
maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="param">
+ <xs:complexType>
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Resource
Parameter</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="xs:anyType">
+ <xs:attribute name="name" type="xs:string"
use="required"/>
+ <xs:attribute name="type"
type="xs:string"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/xml/smooks-1.1.xsd
___________________________________________________________________
Name: svn:mime-type
+ text/plain