1 Reply Latest reply on Aug 2, 2007 5:11 AM by matt_law

    wstools error in wsdl2java

      Hi,
      I am attaching a wsdl that used to work nicely with JBoss 4.0.5. But when I try to generate the java files from the wsdl using the wstools shipped along with JBoss 4.2, it keeps giving me this error.

      Exception in thread "main" org.jboss.ws.WSException: [JAX-RPC 2.3.1.2] Unable to unwrap model group with multiple particles.
      at org.jboss.ws.tools.helpers.ReturnTypeUnwrapper.unwrapModelGroup(ReturnTypeUnwrapper.java:120)
      at org.jboss.ws.tools.helpers.ReturnTypeUnwrapper.unwrap(ReturnTypeUnwrapper.java:87)
      at org.jboss.ws.tools.WSDLToJava.getReturnType(WSDLToJava.java:632)
      at org.jboss.ws.tools.WSDLToJava.appendDocParameters(WSDLToJava.java:395)
      at org.jboss.ws.tools.WSDLToJava.appendMethods(WSDLToJava.java:290)
      at org.jboss.ws.tools.WSDLToJava.createSEIFile(WSDLToJava.java:588)
      at org.jboss.ws.tools.WSDLToJava.createSEI(WSDLToJava.java:618)
      at org.jboss.ws.tools.WSDLToJava.generateSEI(WSDLToJava.java:186)
      at org.jboss.ws.tools.helpers.ToolsHelper.handleWSDLToJavaGeneration(ToolsHelper.java:303)
      at org.jboss.ws.tools.WSTools.process(WSTools.java:137)
      at org.jboss.ws.tools.WSTools.generate(WSTools.java:69)
      at org.jboss.ws.tools.WSTools.generate(WSTools.java:119)
      at org.jboss.ws.tools.WSTools.main(WSTools.java:58)

      Can someone please look at the wsdl and point me the problem in the wsdl?

      regards,
      johnf

      
      <definitions name="EventMonitoringService" targetNamespace="http://com.ws.test/sample"
       xmlns="http://schemas.xmlsoap.org/wsdl/"
       xmlns:ns2="http://com.ws.test/sample"
       xmlns:tns="http://com.ws.test/sample/types"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
       xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
       <types>
       <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       targetNamespace="http://com.ws.test/sample/types"
       xmlns:tns="http://com.ws.test/sample/types">
      
       <xsd:simpleType name="DeviceID">
       <xsd:restriction base="xsd:string">
       <xsd:minLength value="0"/>
       </xsd:restriction>
       </xsd:simpleType>
      
       <xsd:complexType name="LogicalEvents">
       <xsd:sequence>
       <xsd:element name="logicalVar1" type="xsd:boolean" minOccurs="0"/>
       <xsd:element name="logicalVar2" type="xsd:boolean" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
      
       <xsd:complexType name="PhysicalEvents">
       <xsd:sequence>
       <xsd:element name="physicalVar1" type="xsd:boolean" minOccurs="0"/>
       <xsd:element name="physicalVar2" type="xsd:boolean" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
      
       <xsd:complexType name="FilterEvents">
       <xsd:sequence>
       <xsd:element name="physical" type="tns:PhysicalEvents" minOccurs="0"/>
       <xsd:element name="logical" type="tns:LogicalEvents" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
      
       <xsd:simpleType name="ErrorValue">
       <xsd:restriction base="xsd:string">
       <xsd:minLength value="0"/>
       </xsd:restriction>
       </xsd:simpleType>
      
       <xsd:complexType name="TestException">
       <xsd:sequence>
       <xsd:element name="errorValue" type="tns:ErrorValue"/>
       <xsd:element name="errorMessage" type="xsd:string" nillable="true"/>
       </xsd:sequence>
       </xsd:complexType>
      
       <xsd:element name="ErrorValue" type="tns:ErrorValue"/>
       <xsd:element name="TestException" type="tns:TestException"/>
      
       <xsd:element name="MonitorEventsRequest">
       <xsd:complexType>
       <xsd:sequence>
       <xsd:element name="deviceID" type="tns:DeviceID"/>
       <xsd:element name="requestFilter" type="tns:FilterEvents" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
       </xsd:element>
      
       <xsd:element name="MonitorEventsResponse">
       <xsd:complexType>
       <xsd:sequence>
       <xsd:element name="deviceID" type="tns:DeviceID"/>
       <xsd:element name="allotedFilter" type="tns:FilterEvents" minOccurs="0"/>
       </xsd:sequence>
       </xsd:complexType>
       </xsd:element>
       </xsd:schema>
       </types>
      
       <message name="MonitorEventsRequest">
       <part name="parameters" element="tns:MonitorEventsRequest"/>
       </message>
      
       <message name="MonitorEventsResponse">
       <part name="result" element="tns:MonitorEventsResponse"/>
       </message>
      
       <message name="TestException">
       <part name="exception" element="tns:TestException"/>
       </message>
      
       <portType name="EventMonitoringService">
       <operation name="MonitorEventsRequest">
       <input message="ns2:MonitorEventsRequest"/>
       <output message="ns2:MonitorEventsResponse"/>
       <fault name="FaultName" message="ns2:TestException"/>
       </operation>
       </portType>
      
      
       <binding name="EventMonitoringServiceBinding" type="ns2:EventMonitoringService">
       <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
       <operation name="MonitorEventsRequest">
       <soap:operation soapAction=""/>
       <input>
       <soap:body use="literal"/>
       </input>
       <output>
       <soap:body use="literal"/>
       </output>
       <fault name="FaultName">
       <soap:fault name="FaultName" use="literal"/>
       </fault>
       </operation>
      
       </binding>
       <service name="EventMonitoringService">
       <port name="EventMonitoringServicePort" binding="ns2:EventMonitoringServiceBinding">
       <soap:address location="http://localhost/test/EventMonitoringService"/>
       </port>
       </service>
      
      </definitions>
      
      


        • 1. Re: wstools error in wsdl2java
          matt_law

          I have got this problem as well. From what I can find out it is caused by the types, possibly the request and response in John's wsdl. My wsdl is from a 3rd party application so I can't change it much, but I would like to know what I can do to fix it.

          I have included the WSDL & XSD docs below

          WSDL

          <definitions targetNamespace="http://www.imagenow.com/access/services1.0.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://www.imagenow.com/access/services1.0.wsdl" xmlns:common="http://www.imagenow.com/types/services1.0.xsd" xmlns:access="http://www.imagenow.com/access/services1.0.xsd" xmlns="http://schemas.xmlsoap.org/wsdl/">
           <types>
           <xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified">
           <xs:import namespace="http://www.imagenow.com/access/services1.0.xsd" schemaLocation="imagenow_access.xsd"/>
           </xs:schema>
           </types>
           <message name="INOW_EXCEPTION">
           <part name="INOW_EXCEPTION" element="common:INOW_EXCEPTION"/>
           </message>
           <message name="ACCESS_SESSION_BEGIN_USING_PW_REQUEST">
           <part name="parameter" element="access:ACCESS_SESSION_BEGIN_USING_PASSWORD"/>
           </message>
           <message name="ACCESS_SESSION_BEGIN_USING_PW_RESPONSE">
           <part name="parameter" element="access:LOGIN_OBJECT"/>
           </message>
           <message name="ACCESS_SESSION_END_REQUEST">
           <part name="parameter" element="access:LOGIN_OBJECT"/>
           </message>
           <message name="ACCESS_SESSION_END_RESPONSE">
           <part name="isEnded" element="common:INOW_BOOLEAN"/>
           </message>
           <message name="ACCESS_USER_CHECK_REQUEST">
           <part name="parameter" element="access:ACCESS_USER_CHECK"/>
           </message>
           <message name="ACCESS_USER_CHECK_RESPONSE">
           <part name="isUser" element="common:INOW_BOOLEAN"/>
           </message>
           <portType name="INOW_ACCESS_PORT_TYPE">
           <operation name="ACCESS_SESSION_BEGIN_USING_PASSWORD">
           <documentation>This operation is used to logon to ImageNow via the Message Agent. A logon object is returned and this data is used to set the context for the session that is used for every subsequent client-server communication.</documentation>
           <input message="impl:ACCESS_SESSION_BEGIN_USING_PW_REQUEST"/>
           <output message="impl:ACCESS_SESSION_BEGIN_USING_PW_RESPONSE"/>
           <fault name="inowException" message="impl:INOW_EXCEPTION"/>
           </operation>
           <operation name="ACCESS_SESSION_END">
           <documentation>This operation is used to end a Message Agent session.</documentation>
           <input message="impl:ACCESS_SESSION_END_REQUEST"/>
           <output message="impl:ACCESS_SESSION_END_RESPONSE"/>
           <fault name="inowException" message="impl:INOW_EXCEPTION"/>
           </operation>
           <operation name="ACCESS_USER_CHECK">
           <documentation>This operation is used to see if a particular user name is a valid ImageNow user.</documentation>
           <input message="impl:ACCESS_USER_CHECK_REQUEST"/>
           <output message="impl:ACCESS_USER_CHECK_RESPONSE"/>
           <fault name="inowException" message="impl:INOW_EXCEPTION"/>
           </operation>
           </portType>
           <binding name="INOW_ACCESS_SOAP_HTTP_BIND" type="impl:INOW_ACCESS_PORT_TYPE">
           <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
           <operation name="ACCESS_SESSION_BEGIN_USING_PASSWORD">
           <soap:operation soapAction="urn:#ACCESS_SESSION_BEGIN_USING_PASSWORD"/>
           <input>
           <soap:body use="literal"/>
           </input>
           <output>
           <soap:body use="literal"/>
           </output>
           <fault name="inowException">
           <soap:fault name="inowException" use="literal"/>
           </fault>
           </operation>
           <operation name="ACCESS_SESSION_END">
           <soap:operation soapAction="urn:#ACCESS_SESSION_END"/>
           <input>
           <soap:body use="literal"/>
           </input>
           <output>
           <soap:body use="literal"/>
           </output>
           <fault name="inowException">
           <soap:fault name="inowException" use="literal"/>
           </fault>
           </operation>
           <operation name="ACCESS_USER_CHECK">
           <soap:operation soapAction="urn:#ACCESS_USER_CHECK"/>
           <input>
           <soap:body use="literal"/>
           </input>
           <output>
           <soap:body use="literal"/>
           </output>
           <fault name="inowException">
           <soap:fault name="inowException" use="literal"/>
           </fault>
           </operation>
           </binding>
          
           <documentation>
          General Information
          Perceptive Software's ImageNow(TM) product provides document imaging and management functionality including a document-centric workflow implementation. Perceptive Software's Message Agent exposes a subset of this functionality as web services.
          This WSDL defines the basic access (authentication/authorization) web services available for use in Message Agent client programs.
          </documentation>
          </definitions>
          


          XSD 1

          <xs:schema targetNamespace="http://www.imagenow.com/access/services1.0.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:common="http://www.imagenow.com/types/services1.0.xsd" xmlns:impl="http://www.imagenow.com/access/services1.0.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
           <xs:import namespace="http://www.imagenow.com/types/services1.0.xsd" schemaLocation="imagenow_commonTypes.xsd"/>
           <xs:annotation>
           <xs:documentation>Schema defines the access data types needed to access ImageNow via the Message Agent.</xs:documentation>
           </xs:annotation>
           <xs:annotation>
           <xs:documentation>Begin document-literal-wrapped style types definition. Element names exactly match operation names in the corresponding WSDL and the element's complex type has no attributes.</xs:documentation>
           </xs:annotation>
           <xs:element name="ACCESS_SESSION_BEGIN_USING_PASSWORD">
           <xs:annotation>
           <xs:documentation>Defines parameters to begin a Message Agent client session using a user account in ImageNow.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:sequence>
           <xs:element ref="common:LOCALE"/>
           <xs:element ref="common:INOW_USER_NAME"/>
           <xs:element name="PASSWORD" type="xs:string">
           <xs:annotation>
           <xs:documentation>ImageNow password for the user.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element ref="common:APP_CONTEXT"/>
           <xs:element ref="common:MESSAGE_AGENT_SERVER_NAME"/>
           <xs:element ref="impl:MESSAGE_AGENT_SERVER_PORT"/>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:element name="ACCESS_SESSION_END">
           <xs:annotation>
           <xs:documentation>Defines parameters to end a Message Agent session.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:sequence>
           <xs:element ref="common:INOW_CONTEXT"/>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:element name="ACCESS_USER_CHECK">
           <xs:annotation>
           <xs:documentation>Defines parameters to check if a particular user name is a valid ImageNow user.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:sequence>
           <xs:element ref="common:INOW_CONTEXT"/>
           <xs:element name="USER_NAME" type="common:USER_NAME_TYPE">
           <xs:annotation>
           <xs:documentation>User name.</xs:documentation>
           </xs:annotation>
           </xs:element>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:annotation>
           <xs:documentation>Begin supporting data types.</xs:documentation>
           </xs:annotation>
           <xs:element name="LOGIN_OBJECT">
           <xs:annotation>
           <xs:documentation>Contains authentication parameters for Message Agent.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:sequence>
           <xs:element ref="common:INOW_CONTEXT"/>
           <xs:element ref="common:INOW_USER_NAME"/>
           <xs:element name="EXPIRATION_DATE" type="common:INOW_DATE_TIME" nillable="true">
           <xs:annotation>
           <xs:documentation>Expiration for the logon object.</xs:documentation>
           </xs:annotation>
           </xs:element>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:element name="MESSAGE_AGENT_SERVER_PORT" type="xs:int">
           <xs:annotation>
           <xs:documentation>Port number for the Message Agent server. Default port numbers are 6070/6075 for HTTP/HTTPS.</xs:documentation>
           </xs:annotation>
           </xs:element>
          </xs:schema>
          


          XSD 2

          <xs:schema targetNamespace="http://www.imagenow.com/types/services1.0.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://www.imagenow.com/types/services1.0.xsd" xmlns:ref="http://schemas.xmlsoap.org/ws/2002/04/reference/" xmlns:content="http://schemas.xmlsoap.org/ws/2002/04/content-type/">
           <xs:annotation>
           <xs:documentation>Schema defines data types common to more than one ImageNow service as exposed by Message Agent.</xs:documentation>
           </xs:annotation>
           <xs:element name="INOW_EXCEPTION" nillable="true">
           <xs:annotation>
           <xs:documentation>Common Message Agent exception object related to ImageNow web services.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:sequence>
           <xs:element name="ID" type="xs:int">
           <xs:annotation>
           <xs:documentation>ID of the exception.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="ERROR_CODE" type="xs:int">
           <xs:annotation>
           <xs:documentation>Unique error code for the exception.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="ERROR_MESSAGE">
           <xs:annotation>
           <xs:documentation>Error message associated with the error code.</xs:documentation>
           </xs:annotation>
           <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:maxLength value="1023"/>
           </xs:restriction>
           </xs:simpleType>
           </xs:element>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:element name="INOW_CONTEXT">
           <xs:annotation>
           <xs:documentation>Represents the user's context that is passed back and forth between the Message Agent client and server for purposes of utilizing ImageNow functionality via web services.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:sequence>
           <xs:element ref="impl:LOCALE"/>
           <xs:element ref="impl:APP_CONTEXT"/>
           <xs:element ref="impl:SESSION_STRING"/>
           <xs:element ref="impl:MESSAGE_AGENT_SERVER_NAME"/>
           <xs:element ref="impl:INOW_USER_NAME"/>
           <xs:element name="AUDIT_USER" type="impl:USER_NAME_TYPE" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Username, as defined in ImageNow, of the user coming through the bridge. Security permissions and auditing will be conducted on this username.</xs:documentation>
           </xs:annotation>
           </xs:element>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:element name="INOW_USER_NAME" type="impl:USER_NAME_TYPE">
           <xs:annotation>
           <xs:documentation>Name of the user in ImageNow.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:simpleType name="USER_NAME_TYPE">
           <xs:annotation>
           <xs:documentation>Name of the user in ImageNow.</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:token">
           <xs:maxLength value="31" fixed="true"/>
           </xs:restriction>
           </xs:simpleType>
           <xs:simpleType name="DRAWER_NAME_TYPE">
           <xs:annotation>
           <xs:documentation>Name of a Drawer in ImageNow.</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:token">
           <xs:maxLength value="15" fixed="true"/>
           </xs:restriction>
           </xs:simpleType>
           <xs:element name="DRAWER_NAME" type="impl:DRAWER_NAME_TYPE">
           <xs:annotation>
           <xs:documentation>Name of a Drawer in ImageNow.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="DOCUMENT_KEYS" nillable="true">
           <xs:annotation>
           <xs:documentation>Document keys used to uniquely index documents in ImageNow.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:annotation>
           <xs:documentation>Document keys used to uniquely index documents in ImageNow.</xs:documentation>
           </xs:annotation>
           <xs:sequence>
           <xs:element ref="impl:DRAWER_NAME" minOccurs="0"/>
           <xs:element name="FOLDER" type="impl:DOC_KEY_FIELD_LENGTH" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Logical representation of a folder inside a drawer.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="TAB" type="impl:DOC_KEY_FIELD_LENGTH" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Logical representation of a tab inside a folder.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="FIELD3" type="impl:DOC_KEY_FIELD_LENGTH" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Additional field to further uniquely qualify a document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="FIELD4" type="impl:DOC_KEY_FIELD_LENGTH" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Additional field to furhter uniquely qualify a document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="FIELD5" type="impl:DOC_KEY_FIELD_LENGTH" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Additional field to further uniquely qualify a document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:simpleType name="DOC_KEY_FIELD_LENGTH">
           <xs:annotation>
           <xs:documentation>Limits the length of a document key to 39 characters.</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:token">
           <xs:maxLength value="39" fixed="true"/>
           </xs:restriction>
           </xs:simpleType>
           <xs:element name="DOCUMENT_ID" type="impl:UNIQUE_ID_TYPE" nillable="true">
           <xs:annotation>
           <xs:documentation>Unique identifier for a document in ImageNow. </xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:simpleType name="UNIQUE_ID_TYPE">
           <xs:annotation>
           <xs:documentation>Common type for unique ID fields.</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:token">
           <xs:maxLength value="23" fixed="true"/>
           </xs:restriction>
           </xs:simpleType>
           <xs:element name="DOCUMENT_KEYWORDS" nillable="true">
           <xs:annotation>
           <xs:documentation>Holds key word values for a particular document in ImageNow.</xs:documentation>
           </xs:annotation>
           <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:maxLength value="1023"/>
           </xs:restriction>
           </xs:simpleType>
           </xs:element>
           <xs:element name="DOCUMENT_OBJECT">
           <xs:annotation>
           <xs:documentation>Logical represenation of the data comprising an ImageNow document.</xs:documentation>
           </xs:annotation>
           <xs:complexType>
           <xs:sequence>
           <xs:element ref="impl:DOCUMENT_KEYS" minOccurs="0"/>
           <xs:element name="TOTAL_PAGES" type="xs:int" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Total number of pages in the document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element ref="impl:DOCUMENT_ID" minOccurs="0"/>
           <xs:element name="SCAN_USERID" type="impl:UNIQUE_ID_TYPE" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>ID of the scan user.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="SCAN_USER_NAME" type="impl:USER_NAME_TYPE" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Name of the scan user.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element ref="impl:SCAN_TIME" minOccurs="0"/>
           <xs:element name="MODIFICATION_USERID" type="impl:UNIQUE_ID_TYPE" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>UserID for user making last modification to the document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="MOD_USER_NAME" type="impl:USER_NAME_TYPE" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Name of last user to modify the document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element ref="impl:MODIFICATION_TIME" minOccurs="0"/>
           <xs:element name="LAST_VIEWED_USERID" type="impl:UNIQUE_ID_TYPE" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>ID of the last user to view a document.</xs:documentation>
           <xs:documentation>ID of the last user to view a document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="LAST_VIEWED_USER_NAME" type="impl:USER_NAME_TYPE" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>User name of the last person to view a document.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="LAST_VIEWED_TIME" type="impl:INOW_DATE_TIME" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Time the document was last viewed.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="FREE_FIELD" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Free field. Can be used for keywords.</xs:documentation>
           </xs:annotation>
           <xs:simpleType>
           <xs:restriction base="xs:token">
           <xs:maxLength value="1023"/>
           </xs:restriction>
           </xs:simpleType>
           </xs:element>
           <xs:element name="CURRENT_QID" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>ID of the current workflow queue.</xs:documentation>
           </xs:annotation>
           <xs:simpleType>
           <xs:restriction base="xs:token">
           <xs:maxLength value="23"/>
           </xs:restriction>
           </xs:simpleType>
           </xs:element>
           <xs:element ref="impl:WORKFLOW_Q_NAME" minOccurs="0"/>
           <xs:element ref="impl:WORKFLOW_STATUS" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Describes state of the document in relation to workflow such as "idle."</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element ref="impl:WORKFLOW_QITEM_ID" minOccurs="0"/>
           <xs:element name="Q_USER_ID" type="impl:UNIQUE_ID_TYPE" nillable="true" minOccurs="0">
           <xs:annotation>
           <xs:documentation>ID of user working with document in workflow. </xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="Q_USER_NAME" type="impl:USER_NAME_TYPE" minOccurs="0">
           <xs:annotation>
           <xs:documentation>Name of the workflow user name.</xs:documentation>
           </xs:annotation>
           </xs:element>
           </xs:sequence>
           </xs:complexType>
           </xs:element>
           <xs:element name="DOC_MODE" type="impl:DOC_MODE_TYPE" nillable="true">
           <xs:annotation>
           <xs:documentation>Selector to identify whether to use DOC_KEYS (KEYS) or DOC_ID (DOCID).</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:simpleType name="DOC_MODE_TYPE">
           <xs:annotation>
           <xs:documentation>Selector to identify whether to use KEYS or DOCID when working with documents.</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:token">
           <xs:enumeration value="KEYS"/>
           <xs:enumeration value="DOCID"/>
           </xs:restriction>
           </xs:simpleType>
           <xs:element name="WORKFLOW_Q_NAME" type="impl:WORKFLOW_Q_NAME_TYPE" nillable="true">
           <xs:annotation>
           <xs:documentation>Name of an ImageNow workflow queue.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:simpleType name="WORKFLOW_Q_NAME_TYPE">
           <xs:annotation>
           <xs:documentation>Name of an ImageNow workflow queue.</xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:string">
           <xs:maxLength value="127" fixed="true"/>
           </xs:restriction>
           </xs:simpleType>
           <xs:element name="WORKFLOW_QITEM_ID" type="impl:UNIQUE_ID_TYPE" nillable="true">
           <xs:annotation>
           <xs:documentation>Unique ID for a document in workflow.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="WORKFLOW_STATUS">
           <xs:annotation>
           <xs:documentation>Defines the state of a workflow item. Possible settings are: IDLE, WORKING, HOLDING, PENDING, FINISHED, COMPLETED, and ANY.</xs:documentation>
           </xs:annotation>
           <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:maxLength value="39"/>
           <xs:enumeration value="IDLE"/>
           <xs:enumeration value="WORKING"/>
           <xs:enumeration value="HOLDING"/>
           <xs:enumeration value="PENDING"/>
           <xs:enumeration value="FINISHED"/>
           <xs:enumeration value="COMPLETED"/>
           <xs:enumeration value="ANY"/>
           </xs:restriction>
           </xs:simpleType>
           </xs:element>
           <xs:element name="SCAN_TIME" type="impl:INOW_DATE_TIME" nillable="true">
           <xs:annotation>
           <xs:documentation>Date and time scan occurred.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="MODIFICATION_TIME" type="impl:INOW_DATE_TIME" nillable="true">
           <xs:annotation>
           <xs:documentation>Time the document was last modified.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="MESSAGE_AGENT_SERVER_NAME" type="xs:token" nillable="true">
           <xs:annotation>
           <xs:documentation>Hostname of the Message Agent server.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="APP_CONTEXT" type="xs:token" nillable="true">
           <xs:annotation>
           <xs:documentation>An application specific context used primarily to identify that a "client" is acting as a bridge for other users and to identify whether the AUDIT_USER field should be evaluated.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="LOCALE" type="xs:token" nillable="true">
           <xs:annotation>
           <xs:documentation>Placeholder for internationalization or browser location value.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="SESSION_STRING" type="xs:token" nillable="true">
           <xs:annotation>
           <xs:documentation>A session string representing the user's context</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="INOW_BOOLEAN" type="xs:int">
           <xs:annotation>
           <xs:documentation>Uses an integer to represent success or failure. 0 implies a non-positive result which will likely spawn an exception and a value of 1 represents success. </xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:element name="TIMEOUT" type="xs:int">
           <xs:annotation>
           <xs:documentation>Determines amount of time to wait for a response. Units in seconds.</xs:documentation>
           </xs:annotation>
           </xs:element>
           <xs:simpleType name="INOW_DATE_TIME">
           <xs:annotation>
           <xs:documentation>This time is represented as seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC). A normative representation is 1093292609:279889 representing the seconds:microseconds since 1JAN70. </xs:documentation>
           </xs:annotation>
           <xs:restriction base="xs:string"/>
           </xs:simpleType>
          </xs:schema>