You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by ra...@apache.org on 2005/10/27 22:23:02 UTC

svn commit: r328944 - in /xmlbeans/trunk: build.xml src/typeimpl/org/apache/xmlbeans/impl/schema/StscSimpleTypeResolver.java src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolderEx.java src/xmlpublic/org/apache/xmlbeans/XmlBeans.java

Author: radup
Date: Thu Oct 27 13:22:56 2005
New Revision: 328944

URL: http://svn.apache.org/viewcvs?rev=328944&view=rev
Log:
Two minor XMLSchema fixes, contributed by Lawrence Jones and myself.
Changed the revision number from 2.0.1 to 2.1.0

Modified:
    xmlbeans/trunk/build.xml
    xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/StscSimpleTypeResolver.java
    xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolderEx.java
    xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/XmlBeans.java

Modified: xmlbeans/trunk/build.xml
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/build.xml?rev=328944&r1=328943&r2=328944&view=diff
==============================================================================
--- xmlbeans/trunk/build.xml (original)
+++ xmlbeans/trunk/build.xml Thu Oct 27 13:22:56 2005
@@ -19,7 +19,7 @@
     <property name="javac.source" value="1.4"/>
     <property name="javac.target" value="1.4"/>
 
-    <property name="version.base" value="2.0.1"/>
+    <property name="version.base" value="2.1.0"/>
 
     <!-- manifest entries -->
     <property name="manifest.name" value="org/apache/xmlbeans/"/>

Modified: xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/StscSimpleTypeResolver.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/StscSimpleTypeResolver.java?rev=328944&r1=328943&r2=328944&view=diff
==============================================================================
--- xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/StscSimpleTypeResolver.java (original)
+++ xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/StscSimpleTypeResolver.java Thu Oct 27 13:22:56 2005
@@ -696,12 +696,12 @@
                 switch (code)
                 {
                     case SchemaType.FACET_LENGTH:
-                        if (myFacets[SchemaType.FACET_MIN_LENGTH] != null ||
-                            myFacets[SchemaType.FACET_MAX_LENGTH] != null)
-                        {
-                            state.error(XmlErrorCodes.DATATYPE_LENGTH, null, facet);
-                            continue;
-                        }
+//                        if (myFacets[SchemaType.FACET_MIN_LENGTH] != null ||
+//                            myFacets[SchemaType.FACET_MAX_LENGTH] != null)
+//                        {
+//                            state.error(XmlErrorCodes.DATATYPE_LENGTH, null, facet);
+//                            continue;
+//                        }
                         XmlInteger len = StscTranslator.buildNnInteger(facet.getValue());
                         if (len == null)
                         {
@@ -713,16 +713,37 @@
                             state.error(XmlErrorCodes.FACET_FIXED, new Object[] { facetName }, facet);
                             continue;
                         }
+                        if (myFacets[SchemaType.FACET_MIN_LENGTH] != null)
+                        {
+                            // An error for 'length' and 'minLength' to be specified at the same time
+                            // except if the base type had the same value for 'minLength' also
+                            XmlAnySimpleType baseMinLength = baseImpl.getFacet(SchemaType.FACET_MIN_LENGTH);
+                            if (!(baseMinLength != null &&
+                                baseMinLength.valueEquals(myFacets[SchemaType.FACET_MIN_LENGTH]) &&
+                                baseMinLength.compareValue(len) <= 0))
+                            {
+                                state.error(XmlErrorCodes.DATATYPE_LENGTH, null, facet);
+                                continue;
+                            }
+                        }
+                        if (myFacets[SchemaType.FACET_MAX_LENGTH] != null)
+                        {
+                            // An error for 'length' and 'maxLength' to be specified at the same time
+                            // except if the base type had the same value for 'maxLength' also
+                            XmlAnySimpleType baseMaxLength = baseImpl.getFacet(SchemaType.FACET_MAX_LENGTH);
+                            if (!(baseMaxLength != null &&
+                                baseMaxLength.valueEquals(myFacets[SchemaType.FACET_MAX_LENGTH]) &&
+                                baseMaxLength.compareValue(len) >= 0))
+                            {
+                                state.error(XmlErrorCodes.DATATYPE_LENGTH, null, facet);
+                                continue;
+                            }
+                        }
                         myFacets[code] = len;
                         break;
 
                     case SchemaType.FACET_MIN_LENGTH:
                     case SchemaType.FACET_MAX_LENGTH:
-                        if (myFacets[SchemaType.FACET_LENGTH] != null)
-                        {
-                            state.error(XmlErrorCodes.DATATYPE_LENGTH, null, facet);
-                            continue;
-                        }
                         XmlInteger mlen = StscTranslator.buildNnInteger(facet.getValue());
                         if (mlen == null)
                         {
@@ -733,6 +754,23 @@
                         {
                             state.error(XmlErrorCodes.FACET_FIXED, new Object[] { facetName }, facet);
                             continue;
+                        }
+                        if (myFacets[SchemaType.FACET_LENGTH] != null)
+                        {
+                            // It's an error for 'length' and 'minLength'/'maxLength' to be
+                            // specified at the same time, except for the case when
+                            // the base type had the same value for 'minLength'/'maxLength'
+                            // and the two values are consistent
+                            XmlAnySimpleType baseMinMaxLength = baseImpl.getFacet(code);
+                            if (!(baseMinMaxLength != null &&
+                                baseMinMaxLength.valueEquals(mlen) &&
+                                (code == SchemaType.FACET_MIN_LENGTH ?
+                                    baseMinMaxLength.compareTo(myFacets[SchemaType.FACET_LENGTH]) <= 0 :
+                                    baseMinMaxLength.compareTo(myFacets[SchemaType.FACET_LENGTH]) >= 0)))
+                            {
+                                state.error(XmlErrorCodes.DATATYPE_LENGTH, null, facet);
+                                continue;
+                            }
                         }
                         if (myFacets[SchemaType.FACET_MAX_LENGTH] != null)
                         {

Modified: xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolderEx.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolderEx.java?rev=328944&r1=328943&r2=328944&view=diff
==============================================================================
--- xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolderEx.java (original)
+++ xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/values/JavaQNameHolderEx.java Thu Oct 27 13:22:56 2005
@@ -99,6 +99,7 @@
             }
         }
 
+        /* length, minLength and maxLength facets deprecated - see http://www.w3.org/TR/xmlschema-2/#QName
         XmlObject x;
         int i;
 
@@ -116,6 +117,7 @@
             if ((i = ((XmlObjectBase)x).bigIntegerValue().intValue()) < v.length())
                 context.invalid(XmlErrorCodes.DATATYPE_MAX_LENGTH_VALID$STRING,
                     new Object[] { "QName", v, new Integer(i), QNameHelper.readable(sType) });
+        */
 
         return name;
     }

Modified: xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/XmlBeans.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/XmlBeans.java?rev=328944&r1=328943&r2=328944&view=diff
==============================================================================
--- xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/XmlBeans.java (original)
+++ xmlbeans/trunk/src/xmlpublic/org/apache/xmlbeans/XmlBeans.java Thu Oct 27 13:22:56 2005
@@ -35,7 +35,7 @@
 public final class XmlBeans
 {
     private static String XMLBEANS_TITLE = "org.apache.xmlbeans";
-    private static String XMLBEANS_VERSION = "2.0.1";
+    private static String XMLBEANS_VERSION = "2.1.0";
     private static String XMLBEANS_VENDOR = "Apache Software Foundation";
 
     static



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org