Ouch. No, I'm afraid I haven't seen this problem. Hopefully someone else can help? What platform are you on?
Russell Butek [EMAIL PROTECTED] David Altenburg <[EMAIL PROTECTED]> on 02/18/2002 06:03:33 PM Please respond to [EMAIL PROTECTED] To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> cc: Subject: RE: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava Sch emaUtils.java Thanks. Saw that, and I'd like to write one. However, I'm having some problems running the test suite with Ant. I get a ClassNotFoundException on samples.userguide.example6.WidgetPrice (and after commenting that out, I see that I get a ClassNotFound on every one of the samples classes). That class is getting built, however, and it is in my classpath (xml-axis/java/build/classes). This question is probably better suited for the Ant list, but I was wondering if anyone here had had the same problem. Thanks, David Altenburg [EMAIL PROTECTED] >-----Original Message----- >From: Russell Butek [mailto:[EMAIL PROTECTED]] >Sent: Monday, February 18, 2002 9:59 AM >To: [EMAIL PROTECTED] >Subject: RE: cvs commit: >xml-axis/java/src/org/apache/axis/wsdl/toJava Sch emaUtils.java > > >David, in his commit comment, Rich said, "Need a testcase..." > >Hint hint! > >Russell Butek >[EMAIL PROTECTED] > > >David Altenburg <[EMAIL PROTECTED]> on 02/18/2002 >09:42:37 AM > >Please respond to [EMAIL PROTECTED] > >To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> >cc: >Subject: RE: cvs commit: >xml-axis/java/src/org/apache/axis/wsdl/toJava Sch > emaUtils.java > > > > > >Excellent. Thanks! > >David Altenburg >[EMAIL PROTECTED] > >>-----Original Message----- >>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] >>Sent: Friday, February 15, 2002 5:02 PM >>To: [EMAIL PROTECTED] >>Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava >>SchemaUtils.java >> >> >>scheu 02/02/15 15:02:19 >> >> Modified: java/src/org/apache/axis/wsdl/toJava SchemaUtils.java >> Log: >> Changes per axis-dev request from David Altenburg. >> >> The WSDL2Java emitter now parses choice and group elements >underneath >> complexType elements. >> >> Need a testcase... >> >> Revision Changes Path >> 1.9 +132 -21 >>xml-axis/java/src/org/apache/axis/wsdl/toJava/SchemaUtils.java >> >> Index: SchemaUtils.java >> =================================================================== >> RCS file: >>/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SchemaU >>tils.java,v >> retrieving revision 1.8 >> retrieving revision 1.9 >> diff -u -r1.8 -r1.9 >> --- SchemaUtils.java 15 Feb 2002 19:41:17 -0000 1.8 >> +++ SchemaUtils.java 15 Feb 2002 23:02:19 -0000 1.9 >> @@ -163,33 +163,18 @@ >> } >> if (groupNode != null) { >> >> - // Process each of the element nodes under >the group >>node >> + // Process each of the choice or element >nodes under >>the sequence/all node >> Vector v = new Vector(); >> NodeList elements = groupNode.getChildNodes(); >> for (int i=0; i < elements.getLength(); i++) { >> QName elementKind = >>Utils.getNodeQName(elements.item(i)); >> if (elementKind != null && >> - >>elementKind.getLocalPart().equals("element") && >> >>Constants.isSchemaXSD(elementKind.getNamespaceURI())) { >> - >> - // Get the name and type qnames. >> - // The name of the element is the >local part >>of the name's qname. >> - // The type qname is used to locate the >>TypeEntry, which is then >> - // used to retrieve the proper >java name of >>the type. >> - Node elementNode = elements.item(i); >> - QName nodeName = >>Utils.getNodeNameQName(elementNode); >> - BooleanHolder forElement = new >>BooleanHolder(); >> - QName nodeType = >>Utils.getNodeTypeRefQName(elementNode, forElement); >> - if (nodeType == null) { // The element may >>use an anonymous type >> - nodeType = nodeName; >> - forElement.value = false; >> - } >> - >> - TypeEntry type = (TypeEntry) >>symbolTable.getTypeEntry(nodeType, >> - >> forElement.value); >> - if (type != null) { >> - v.add(type); >> - v.add(nodeName.getLocalPart()); >> + if ( >>elementKind.getLocalPart().equals("element")) { >> + >>v.addAll(processChildElementNode(elements.item(i), symbolTable)); >> + } else if >>(elementKind.getLocalPart().equals("choice")) { >> + Vector choiceElems = >>processChoiceNode(elements.item(i), symbolTable); >> + v.addAll(choiceElems); >> } >> } >> } >> @@ -197,6 +182,132 @@ >> } >> } >> return null; >> + } >> + >> + /** >> + * Invoked by getComplexElementTypesAndNames to get the child >>element types >> + * and child element names underneath a Choice Node >> + */ >> + private static Vector processChoiceNode(Node choiceNode, >>SymbolTable symbolTable) { >> + Vector v = new Vector(); >> + NodeList children = choiceNode.getChildNodes(); >> + for (int j = 0; j < children.getLength(); j++) { >> + QName subNodeKind = >>Utils.getNodeQName(children.item(j)); >> + if (subNodeKind != null && >> + >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { >> + if (subNodeKind.getLocalPart().equals("choice")) { >> + >>v.addAll(processChoiceNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("sequence")) { >> + >>v.addAll(processSequenceNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("group")) { >> + >>v.addAll(processGroupNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("element")) { >> + >>v.addAll(processChildElementNode(children.item(j), symbolTable)); >> + } >> + } >> + } >> + return v; >> + } >> + >> + /** >> + * Invoked by getComplexElementTypesAndNames to get the child >>element types >> + * and child element names underneath a Sequence Node >> + */ >> + private static Vector processSequenceNode(Node sequenceNode, >>SymbolTable symbolTable) { >> + Vector v = new Vector(); >> + NodeList children = sequenceNode.getChildNodes(); >> + for (int j = 0; j < children.getLength(); j++) { >> + QName subNodeKind = >>Utils.getNodeQName(children.item(j)); >> + if (subNodeKind != null && >> + >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { >> + if (subNodeKind.getLocalPart().equals("choice")) { >> + >>v.addAll(processChoiceNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("sequence")) { >> + >>v.addAll(processSequenceNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("group")) { >> + >>v.addAll(processGroupNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("element")) { >> + >>v.addAll(processChildElementNode(children.item(j), symbolTable)); >> + } >> + } >> + } >> + return v; >> + } >> + >> + /** >> + * Invoked by getComplexElementTypesAndNames to get the child >>element types >> + * and child element names underneath a group node. >> + * (Currently the code only supports a defined group >it does not >> + * support a group that references a previously defined group) >> + */ >> + private static Vector processGroupNode(Node groupNode, >>SymbolTable symbolTable) { >> + Vector v = new Vector(); >> + NodeList children = groupNode.getChildNodes(); >> + for (int j = 0; j < children.getLength(); j++) { >> + QName subNodeKind = >>Utils.getNodeQName(children.item(j)); >> + if (subNodeKind != null && >> + >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { >> + if (subNodeKind.getLocalPart().equals("choice")) { >> + >>v.addAll(processChoiceNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("sequence")) { >> + >>v.addAll(processSequenceNode(children.item(j), symbolTable)); >> + } else if >>(subNodeKind.getLocalPart().equals("all")) { >> + >>v.addAll(processAllNode(children.item(j), symbolTable)); >> + } >> + } >> + } >> + return v; >> + } >> + >> + /** >> + * Invoked by getComplexElementTypesAndNames to get the child >>element types >> + * and child element names underneath an all node. >> + */ >> + private static Vector processAllNode(Node allNode, SymbolTable >>symbolTable) { >> + Vector v = new Vector(); >> + NodeList children = allNode.getChildNodes(); >> + for (int j = 0; j < children.getLength(); j++) { >> + QName subNodeKind = >>Utils.getNodeQName(children.item(j)); >> + if (subNodeKind != null && >> + >>Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) { >> + if (subNodeKind.getLocalPart().equals("element")) { >> + >>v.addAll(processChildElementNode(children.item(j), symbolTable)); >> + } >> + } >> + } >> + return v; >> + } >> + >> + >> + /** >> + * Invoked by getComplexElementTypesAndNames to get the child >>element type >> + * and child element name for a child element node. >> + * >> + * If the specified node represents a supported JAX-RPC child >>element, >> + * a Vector is returned which contains the child element type >>and >> + * child element name. The 0th index is the element types >>(TypeEntry) and >> + * the 1st index is the corresponding name (Strings). >> + */ >> + private static Vector processChildElementNode(Node >elementNode, >>SymbolTable symbolTable) { >> + Vector v = new Vector(); >> + // Get the name and type qnames. >> + // The name of the element is the local part of the name's >>qname. >> + // The type qname is used to locate the TypeEntry, >which is >>then >> + // used to retrieve the proper java name of the type. >> + QName nodeName = Utils.getNodeNameQName(elementNode); >> + BooleanHolder forElement = new BooleanHolder(); >> + QName nodeType = Utils.getNodeTypeRefQName(elementNode, >>forElement); >> + if (nodeType == null) { // The element may use an >anonymous >>type >> + nodeType = nodeName; >> + forElement.value = false; >> + } >> + >> + TypeEntry type = (TypeEntry) >>symbolTable.getTypeEntry(nodeType, forElement.value); >> + if (type != null) { >> + v.add(type); >> + v.add(nodeName.getLocalPart()); >> + } >> + return v; >> } >> >> /** >> >> >> >> > > >