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;
>>������ }
>>
>>������ /**
>>
>>
>>
>>
>
>
>