You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Russell Butek <bu...@us.ibm.com> on 2001/10/02 18:01:38 UTC

First cut at breaking up Emitter.java

For those who care, org/apache/axis/wsdl/Emitter.java needs breaking up.
Rich Scheuerle is working with me on the Wsdl2java stuff.  Here's some work
that he did that is an initial cut at breaking up Emitter.java:  (See
attached file: emitter.zip).  His focus was breaking out the XML schema
type processing and cleaning up some namespace stuff.  I hope to check this
stuff in later today.  Here's his explanation of what he did:

-----------------------------------

Summary of changes:
   New class: Type.java (look at this first)
     A Type object is created for each supported type referenced or defined
     in the WSDL document.
     The Type objects are created by the new TypeFactory class.
     A Type object contains the "royal triplet" (QName, JavaName,
     DefiningNode)
        The Emitter currently ignores most namespace information, and
        simply passes around the local name elements.
        Now the emitter can operate on Type elements, which have all of the
        critical information.
     Note that Type objects are also created for built-in types (like
     xsd:string) and the built-in types are mapped to their java built-in
     names.
   New class: TypeFactory (look at this second)
     This new class does a simple search of the Document and builds a list
     of Types.
        The factory has been upgraded to support enumeration types, and
        anonymous types.
     The Emitter can then access all of the types, or it can access a
     particular type using its QName.
     The factory also contains code to get "complexType" information and
     "enumeration" information.
     Prior to building the list, the Emitter can associate specific
     namespaces with packages.
   New class: Utils (look at this third)
     Miscellaneous class that contains static utility methods.
   Changed class: Emitter.java
     Note that I have changed the code to use Types (and namespaces) as
     appropriate.
        See the writeTypes(), writeType(...), writeComplexType(...)
        methods.



Russell Butek
butek@us.ibm.com