You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2006/08/25 19:22:13 UTC

svn commit: r436863 - /geronimo/xbean/trunk/xbean-spring-common/src/main/java/org/apache/xbean/spring/generator/XsdGenerator.java

Author: gnodet
Date: Fri Aug 25 10:22:13 2006
New Revision: 436863

URL: http://svn.apache.org/viewvc?rev=436863&view=rev
Log:
XBEAN-47: Add missing docs to the generated xsd

Modified:
    geronimo/xbean/trunk/xbean-spring-common/src/main/java/org/apache/xbean/spring/generator/XsdGenerator.java

Modified: geronimo/xbean/trunk/xbean-spring-common/src/main/java/org/apache/xbean/spring/generator/XsdGenerator.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-spring-common/src/main/java/org/apache/xbean/spring/generator/XsdGenerator.java?rev=436863&r1=436862&r2=436863&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-spring-common/src/main/java/org/apache/xbean/spring/generator/XsdGenerator.java (original)
+++ geronimo/xbean/trunk/xbean-spring-common/src/main/java/org/apache/xbean/spring/generator/XsdGenerator.java Fri Aug 25 10:22:13 2006
@@ -74,6 +74,15 @@
         String localName = element.getElementName();
 
         out.println("  <xs:element name='" + localName + "'>");
+
+        if (!isEmptyString(element.getDescription())) {
+            out.println("    <xs:annotation>");
+            out.println("      <xs:documentation><![CDATA[");
+            out.println("        " + element.getDescription());
+            out.println("      ]]></xs:documentation>");
+            out.println("    </xs:annotation>");
+        }
+
         out.println("    <xs:complexType>");
 
         int complexCount = 0;
@@ -110,6 +119,18 @@
         out.println();
     }
 
+    private boolean isEmptyString(String str) {
+        if (str == null) {
+            return true;
+        }
+        for (int i = 0; i < str.length(); i++) {
+            if (!Character.isWhitespace(str.charAt(i))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
     private void generateIDAttributeMapping(PrintWriter out, NamespaceMapping namespaceMapping, ElementMapping element) {
         for (Iterator iterator = element.getAttributes().iterator(); iterator.hasNext();) {
             AttributeMapping attributeMapping = (AttributeMapping) iterator.next();
@@ -121,11 +142,31 @@
     }
 
     private void generateElementMappingSimpleProperty(PrintWriter out, AttributeMapping attributeMapping) {
-        out.println("      <xs:attribute name='" + attributeMapping.getAttributeName() + "' type='" + Utils.getXsdType(attributeMapping.getType()) + "'/>");
+        if (!isEmptyString(attributeMapping.getDescription())) {
+            out.println("      <xs:attribute name='" + attributeMapping.getAttributeName() + "' type='" + Utils.getXsdType(attributeMapping.getType()) + "'>");
+            out.println("        <xs:annotation>");
+            out.println("          <xs:documentation><![CDATA[");
+            out.println("            " + attributeMapping.getDescription());
+            out.println("          ]]></xs:documentation>");
+            out.println("        </xs:annotation>");
+            out.println("      </xs:attribute>");
+        } else {
+            out.println("      <xs:attribute name='" + attributeMapping.getAttributeName() + "' type='" + Utils.getXsdType(attributeMapping.getType()) + "'/>");
+        }
     }
 
     private void generateElementMappingComplexPropertyAsRef(PrintWriter out, AttributeMapping attributeMapping) {
-        out.println("      <xs:attribute name='" + attributeMapping.getAttributeName() + "' type='xs:string'/>");
+        if (!isEmptyString(attributeMapping.getDescription())) {
+            out.println("      <xs:attribute name='" + attributeMapping.getAttributeName() + "' type='xs:string'>");
+            out.println("        <xs:annotation>");
+            out.println("          <xs:documentation><![CDATA[");
+            out.println("            " + attributeMapping.getDescription());
+            out.println("          ]]></xs:documentation>");
+            out.println("        </xs:annotation>");
+            out.println("      </xs:attribute>");
+        } else {
+            out.println("      <xs:attribute name='" + attributeMapping.getAttributeName() + "' type='xs:string'/>");
+        }
     }
 
     private void generateElementMappingComplexProperty(PrintWriter out, NamespaceMapping namespaceMapping, AttributeMapping attributeMapping) {
@@ -140,6 +181,13 @@
         String maxOccurs = type.isCollection() ? "unbounded" : "1";
 
         out.println("        <xs:element name='" + attributeMapping.getAttributeName() + "' minOccurs='0' maxOccurs='1'>");
+        if (!isEmptyString(attributeMapping.getDescription())) {
+            out.println("          <xs:annotation>");
+            out.println("            <xs:documentation><![CDATA[");
+            out.println("              " + attributeMapping.getDescription());
+            out.println("            ]]></xs:documentation>");
+            out.println("          </xs:annotation>");
+        }
         out.println("          <xs:complexType>");
         if (types.isEmpty()) {
             out.println("            <xs:sequence minOccurs='0' maxOccurs='" + maxOccurs + "'><xs:any/></xs:sequence>");