Hi Rahul,
Thanks for the traverser classes. They basically look fine to me. I'll
check them in soon. Here are some comments:
WildcardTraverser:
1. I removed the global variables min/maxOccurs. Then can be handled
locally in TraverseAny().
2. processContents is also in compiled form: XInt.
3. You should trust more on XSAttributeChecker: for those attributes with
default values, the returned attribute value won't be null; and if the
returned value is not null, it must be valid. (So it's not possible that
namespace.length() == 0).
4. In the case of ##other, we need to put targetNamespace and "" in the
namespace list.
5. After we tokenize the namespace attribute, it's possible that we need to
resize the namespace list array, if there were duplicate namespaces.
AttributeGroupTraverser:
1. For attributes that do appear, the returned value (from attribute
checker) is null, not "".
2. If you want to return from the middle of a traverse() method, remember
to call fAttributeChecker.returnArray().
3. AttributeGroup doesn't have to have a child.
4. TO DO: combine the attribute wildcard from another attribute group.
(This code could be shared by attribute group traverser and complex type
traverser.)
5. You had some code like the following, but it's possible that child
==null.
child = DOMUtil.getNextSiblingElement(child);
childName = child.getLocalName();
Thanks,
Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]