You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@xerces.apache.org by Ralf Pfeiffer <rp...@apache.org> on 2000/02/01 01:18:49 UTC

Re: Another couple of quick fixes for XSchemaValidator.java

Thanks George!
Your patches have been applied to CVS.
-rip

"George T. Joseph" wrote:

> Added the ability to specify <annotation>  in <element>, <group>, <attribute>,
> and <attributeGroup>.  It was already allowed in <schema>, <datatype>,  and
> <type>.  The patch I did earlier for <attributeGroup> is here as well.
>
> george
> ------------------------------------------------------
>
> *** XSchemaValidator.javabak    Fri Jan 28 19:27:00 2000
> --- XSchemaValidator.java       Sun Jan 30 13:36:44 2000
> ***************
> *** 1922,1928 ****
>                       else // buildAll
>                           reportSchemaError(SchemaMessageProvider.OrderIsAll,
>                                             new Object [] { "group" } );
> !                 } else if (childName.equals(ELT_ATTRIBUTEDECL)) {
>                       break; // attr processing is done be    low
>                   } else if (childName.equals(ELT_ANY)) {
>                       contentSpecType = fStringPool.addSymbol("ANY");
> --- 1922,1929 ----
>                       else // buildAll
>                           reportSchemaError(SchemaMessageProvider.OrderIsAll,
>                                             new Object [] { "group" } );
> !                 } else if (childName.equals(ELT_ATTRIBUTEDECL) ||
> !                            childName.equals(ELT_ATTRGROUPDECL) ){
>                       break; // attr processing is done be    low
>                   } else if (childName.equals(ELT_ANY)) {
>                       contentSpecType = fStringPool.addSymbol("ANY");
> ***************
> *** 1998,2003 ****
> --- 1999,2006 ----
>                 }
>
>                 Element child = XUtil.getFirstChildElement(groupDecl);
> +       while (child != null && child.getNodeName().equals(ELT_ANNOTATION))
> +          child = XUtil.getNextSiblingElement(child);
>
>                 int contentSpecType = 0;
>                 int csnType = 0;
> ***************
> *** 2201,2206 ****
> --- 2204,2211 ----
>
>                 // element has a single child element, either a datatype or a type, null if
> primitive
>                 Element content = XUtil.getFirstChildElement(elementDecl);
> +       while (content != null && content.getNodeName().equals(ELT_ANNOTATION))
> +          content = XUtil.getNextSiblingElement(content);
>
>                 if (content != null) {
>                         String contentName = content.getNodeName();
> ***************
> *** 2288,2295 ****
>                 int attType = -1;
>                 int enumeration = -1;
>                 String datatype = attrDecl.getAttribute(ATT_TYPE);
>                 if (datatype.equals("")) {
> -                   Element child = XUtil.getFirstChildElement(attrDecl);
>                     while (child != null && !child.getNodeName().equals(ELT_DATATYPEDECL))
>                         child = XUtil.getNextSiblingElement(child);
>                     if (child != null && child.getNodeName().equals(ELT_DATATYPEDECL)) {
> --- 2293,2302 ----
>                 int attType = -1;
>                 int enumeration = -1;
>                 String datatype = attrDecl.getAttribute(ATT_TYPE);
> +       Element child = XUtil.getFirstChildElement(attrDecl);
> +       while (child != null && child.getNodeName().equals(ELT_ANNOTATION))
> +          child = XUtil.getNextSiblingElement(child);
>                 if (datatype.equals("")) {
>                     while (child != null && !child.getNodeName().equals(ELT_DATATYPEDECL))
>                         child = XUtil.getNextSiblingElement(child);
>                     if (child != null && child.getNodeName().equals(ELT_DATATYPEDECL)) {
> ***************
> *** 2390,2395 ****
> --- 2397,2404 ----
>                 }
>
>                 Element child = XUtil.getFirstChildElement(attrGroupDecl);
> +       while (child != null && child.getNodeName().equals(ELT_ANNOTATION))
> +          child = XUtil.getNextSiblingElement(child);
>
>                 int groupIndices[] = new int
> [((org.apache.xerces.dom.NodeImpl)attrGroupDecl).getLength()];
>                 int numGroups = 0;