Hello. I've found a workaround to the problem stated below. Tracing through the Axis code i found out that the WSDL Emitter gets confused with namespaces. I've removed all simpleType's like
<xsd:simpleType name="uuid"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[_][a-zA-Z0-9\-_]{22}"/> </xsd:restriction> </xsd:simpleType> I've left all enumerations like the one below in the wsdl schema. <xsd:simpleType name="clientType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="BROKERAGE"/> <xsd:enumeration value="TRADING"/> </xsd:restriction> </xsd:simpleType> Thomas ----- Original Message ----- From: "thomas willomitzer" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, February 16, 2005 20:35 Subject: Error generating WSDL with xsd:string attribute in AXIS 1.2RC2 > Hi There! > > I have seen a couple of people with the same problem but there seems to be > no answer so far: > > The problem relates to WSDL generation of deployed services in Axis 1.2RC2 . > The error is: > > ------------------------------------ > BEGIN ------------------------------------ > AXIS error > > Sorry, something seems to have gone wrong... here are the details: > > Fault - Bean attribute ISIN is of type java.lang.String, which is not a > simple type > > AxisFault > faultCode: > {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException > faultSubcode: > faultString: Bean attribute ISIN is of type java.lang.String, which is not > a simple type > faultActor: > faultNode: > faultDetail: > {http://xml.apache.org/axis/}hostname:willo > ------------------------------------ > END -------------------------------------- > > The steps involved to reproduce the problem (I've done it around 132 times): > > 1.) run wsdl2java -s -t file.wsdl (wsdl file below) > 2.) Compile and deploy service with adminclient deploy.wsdd > 3.) List services (deployed service appears) > 4.) Try to get wsdl of deployed service > > I changed the type ISIN above to xsd:int int he schema and no complains > about ISIN anymore. > It complained about CountryCode though, which is the next xsd:string > attribute in the complexType. > > PLEASE HELP! Cheers Thomas > > Here is my WSDL file > > ------------------------------------ > BEGIN ------------------------------------ > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions > name="Untitled" > targetNamespace="http://soap.xml.company.com/" > xmlns:bhub="http://data.xml.company.com" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:tns="http://soap.xml.company.com/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <wsdl:types> > <xsd:schema > attributeFormDefault="unqualified" > elementFormDefault="qualified" > targetNamespace="http://data.xml.company.com" > xmlns="http://data.xml.company.com" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <xsd:simpleType name="time"> > <xsd:restriction base="xsd:string"> > <xsd:pattern > > > > > > > > > > > > > > > > > > > > > > > > > value="[a-zA-Z]{3}[ ][a-zA-Z]{3}[ ][0-9]{2}[ ][0-9]{2}[:][0-9]{2}[:][0-9]{2} > [ ][a-zA-Z]{3}[ ][0-9]{4}"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="hour"> > <xsd:restriction base="xsd:string"> > <xsd:pattern value="[0-9]?[0-9][:][0-9]{2}[:][0-9]{2}"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="date"> > <xsd:restriction base="xsd:string"> > <xsd:pattern > value="[0-3]?[0-9][\-][a-zA-Z]{3}[\-][0-9]{2}"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="boolean"> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="TRUE"/> > <xsd:enumeration value="FALSE"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="clientType"> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="BROKERAGE"/> > <xsd:enumeration value="TRADING"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="userType"> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="BROKER"/> > <xsd:enumeration value="TRADER"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="productType"> > <xsd:restriction base="xsd:string"> > <xsd:enumeration value="FUTURE"/> > <xsd:enumeration value="INDEX"/> > <xsd:enumeration value="EQUITY"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="productTypeInt"> > <xsd:restriction base="xsd:int"> > <xsd:enumeration value="0"/> > <xsd:enumeration value="1"/> > <xsd:enumeration value="2"/> > </xsd:restriction> > </xsd:simpleType> > <xsd:simpleType name="uuid"> > <xsd:restriction base="xsd:string"> > <xsd:pattern value="[_][a-zA-Z0-9\-_]{22}"/> > </xsd:restriction> > </xsd:simpleType> > <!-- Elements --> > <xsd:element name="OTCxml" type="OTCxml"/> > <xsd:complexType name="OTCxml"> > <xsd:sequence> > <xsd:sequence> > <xsd:element minOccurs="0" name="Profile" > type="Profile"/> > <xsd:sequence maxOccurs="unbounded" minOccurs="0"> > <xsd:element > maxOccurs="unbounded" > minOccurs="0" > name="Interest" > type="Interest"/> > <xsd:element maxOccurs="unbounded" minOccurs="0" > name="Trade" type="Trade"/> > </xsd:sequence> > </xsd:sequence> > <xsd:element > maxOccurs="unbounded" > minOccurs="0" > name="TradeConfirmation" > type="TradeConfirmation"/> > <xsd:element minOccurs="0" name="Invoice" > type="Invoice"/> > </xsd:sequence> > <xsd:attribute name="time" type="time" use="required"/> > <xsd:attribute name="warning" type="xsd:string"/> > <xsd:attribute name="error" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="Interest"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" name="Leg" > type="Leg"/> > <xsd:element minOccurs="0" name="Bids" type="Bids"/> > <xsd:element minOccurs="0" name="Offers" type="Offers"/> > <xsd:element name="InterestDetails" > type="InterestDetails"/> > <xsd:element name="User" type="User"/> > </xsd:sequence> > <xsd:attribute name="id" type="xsd:ID" use="required"/> > <xsd:attribute name="strategy" type="xsd:string" > use="required"/> > <xsd:attribute name="strategyCode" type="xsd:string" > use="required"/> > <xsd:attribute default="TRUE" name="listed" type="boolean"/> > <xsd:attribute name="time" type="time" use="required"/> > <xsd:attribute name="number" type="xsd:int" use="required"/> > <xsd:attribute name="changed" type="hour"/> > <xsd:attribute default="FALSE" name="cancelled" > type="boolean"/> > <xsd:attribute name="url" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="Bids"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" name="Quote" > type="Quote"/> > </xsd:sequence> > <xsd:attribute name="depth" type="xsd:int"/> > <xsd:attribute name="url" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="Offers"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" name="Quote" > type="Quote"/> > </xsd:sequence> > <xsd:attribute name="depth" type="xsd:int"/> > <xsd:attribute name="url" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="Trade"> > <xsd:sequence> > <xsd:element name="QuoteDetails" type="QuoteDetails"/> > <xsd:element name="Price" type="Price"/> > <xsd:element minOccurs="0" name="DeltaDetails" > type="DeltaDetails"/> > </xsd:sequence> > <xsd:attribute name="id" type="xsd:ID" use="required"/> > <xsd:attribute name="number" type="xsd:unsignedInt"/> > <xsd:attribute name="time" type="time" use="required"/> > <xsd:attribute name="reference" type="xsd:decimal"/> > <xsd:attribute name="basis" type="xsd:decimal"/> > <xsd:attribute default="FALSE" name="cancelled" > type="boolean"/> > </xsd:complexType> > <xsd:complexType name="Invoice"> > <xsd:sequence> > <xsd:element > maxOccurs="unbounded" > name="TradeConfirmation" > type="TradeConfirmation"/> > <xsd:element name="BankDetails" type="BankDetails"/> > </xsd:sequence> > <xsd:attribute name="monthYear" type="xsd:string" > use="required"/> > <xsd:attribute name="VAT" type="xsd:string"/> > <xsd:attribute name="total" type="xsd:string" > use="required"/> > <xsd:attribute name="currency" type="xsd:string" > use="required"/> > <xsd:attribute default="TRUE" name="listed" type="boolean"/> > </xsd:complexType> > <xsd:complexType name="Profile"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" minOccurs="0" > name="Symbol" type="Symbol"/> > <xsd:element maxOccurs="unbounded" minOccurs="0" > name="Sector" type="Sector"/> > </xsd:sequence> > </xsd:complexType> > <!-- Third Level --> > <xsd:complexType name="Quote"> > <xsd:sequence> > <xsd:element name="QuoteDetails" type="QuoteDetails"/> > <xsd:element name="Price" type="Price"/> > <xsd:element minOccurs="0" name="DeltaDetails" > type="DeltaDetails"/> > </xsd:sequence> > <xsd:attribute name="time" type="time" use="required"/> > <xsd:attribute name="expires" type="date"/> > <xsd:attribute name="basis" type="xsd:decimal"/> > </xsd:complexType> > <xsd:complexType name="Leg"> > <xsd:sequence> > <xsd:element minOccurs="0" name="ProductInfo" > type="ProductInfo"/> > <xsd:element minOccurs="0" name="OptionInfo" > type="OptionInfo"/> > <xsd:element minOccurs="0" name="FutureInfo" > type="FutureInfo"/> > </xsd:sequence> > <xsd:attribute name="productId" type="uuid"/> > <xsd:attribute name="number" type="xsd:int" use="required"/> > <xsd:attribute name="multiplier" type="xsd:decimal" > use="required"/> > <xsd:attribute default="TRUE" name="over" type="boolean"/> > <xsd:attribute name="gearing" type="xsd:int" > use="required"/> > </xsd:complexType> > <xsd:complexType name="QuoteDetails"> > <xsd:attribute name="interestId" type="uuid" > use="required"/> > <xsd:attribute default="TRUE" name="confirmed" > type="boolean"/> > <xsd:attribute name="username" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType mixed="true" name="InterestDetails"> > <xsd:sequence> > <xsd:element minOccurs="0" name="DeltaDetails" > type="DeltaDetails"/> > <xsd:element minOccurs="0" name="Future" type="Future"/> > </xsd:sequence> > <xsd:attribute name="reference" type="xsd:double"/> > <xsd:attribute name="basis" type="xsd:double"/> > </xsd:complexType> > <xsd:complexType name="User"> > <xsd:sequence> > <xsd:element name="Client" type="Client"/> > <xsd:element minOccurs="0" name="SettlementAccounts" > type="SettlementAccounts"/> > </xsd:sequence> > <xsd:attribute default="BROKER" name="type" > type="userType"/> > <xsd:attribute name="username" type="xsd:string" > use="required"/> > <xsd:attribute name="fullName" type="xsd:string" > use="required"/> > <xsd:attribute name="phone" type="xsd:string" > use="required"/> > <xsd:attribute name="fax" type="xsd:string"/> > <xsd:attribute name="email" type="xsd:string" > use="required"/> > </xsd:complexType> > <!-- Price value is element content. --> > <xsd:complexType name="Price"> > <xsd:simpleContent> > <xsd:extension base="xsd:decimal"> > <xsd:attribute name="bid" type="boolean" > use="required"/> > <xsd:attribute name="size" type="xsd:unsignedInt" > use="required"/> > <xsd:attribute name="underlyingTolerance" > type="xsd:string"/> > </xsd:extension> > </xsd:simpleContent> > </xsd:complexType> > <xsd:complexType name="TradeConfirmation"> > <xsd:sequence> > <xsd:element name="ConfirmationHeader" > type="ConfirmationHeader"/> > <xsd:element > maxOccurs="unbounded" > name="LegConfirmation" > type="LegConfirmation"/> > <xsd:sequence minOccurs="0"> > <xsd:element name="User1" type="User"/> > <xsd:element name="User2" type="User"/> > </xsd:sequence> > <xsd:element name="UnderlyingSettlement" > type="UnderlyingSettlement"/> > <xsd:element name="Billing" type="Billing"/> > <xsd:element name="User" type="User"/> > <xsd:element > maxOccurs="unbounded" > minOccurs="0" > name="Settlements" > type="Settlements"/> > </xsd:sequence> > <xsd:attribute name="strategy" type="xsd:string" > use="required"/> > <xsd:attribute name="rcptName" type="xsd:string" > use="required"/> > <xsd:attribute name="rcptAddress" type="xsd:string" > use="required"/> > <xsd:attribute name="rcptCity" type="xsd:string" > use="required"/> > <xsd:attribute name="rcptZipCode" type="xsd:string" > use="required"/> > <xsd:attribute name="rcptCountry" type="xsd:string" > use="required"/> > <xsd:attribute name="hiddenSeller" type="xsd:string" > use="required"/> > <xsd:attribute name="hiddenBuyer" type="xsd:string" > use="required"/> > <xsd:attribute name="sellerContact" type="xsd:string" > use="required"/> > <xsd:attribute name="buyerContact" type="xsd:string" > use="required"/> > <xsd:attribute name="delivery" type="xsd:string" > use="required"/> > <xsd:attribute name="optionsDetailComment" type="xsd:string" > use="required"/> > <xsd:attribute name="externalRef" type="xsd:string"/> > <xsd:attribute name="reference" type="xsd:string" > use="required"/> > <xsd:attribute name="delta" type="xsd:string" > use="required"/> > <xsd:attribute name="price" type="xsd:string" > use="required"/> > <xsd:attribute name="premium" type="xsd:string"/> > <xsd:attribute name="basis" type="xsd:string"/> > <xsd:attribute name="listed" type="boolean" use="required"/> > <xsd:attribute default="FALSE" name="percent" > type="boolean"/> > <xsd:attribute name="size" type="xsd:string" > use="required"/> > <xsd:attribute name="currency" type="xsd:string" > use="required"/> > <xsd:attribute name="time" type="xsd:string" > use="required"/> > <xsd:attribute name="settlement" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="BankDetails"> > <xsd:attribute name="detail" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="Symbol"> > <xsd:attribute name="exchangeCode" type="xsd:string" > use="required"/> > <xsd:attribute name="exchangeName" type="xsd:string" > use="required"/> > <xsd:attribute name="ISIN" type="xsd:string"/> > <xsd:attribute name="countryCode" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="Sector"> > <xsd:attribute name="code" type="xsd:string" > use="required"/> > <xsd:attribute name="description" type="xsd:string" > use="required"/> > </xsd:complexType> > <!-- Fourth Level --> > <xsd:complexType name="DeltaDetails"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" name="Delta" > type="Delta"/> > </xsd:sequence> > <xsd:attribute name="total" type="xsd:double"/> > </xsd:complexType> > <!-- Product name is element contents. --> > <xsd:complexType mixed="true" name="ProductInfo"> > <xsd:attribute name="id" type="uuid" use="required"/> > <xsd:attribute name="symbol" type="xsd:string" > use="required"/> > <xsd:attribute name="name" type="xsd:string"/> > <xsd:attribute name="exchangeName" type="xsd:string" > use="required"/> > <xsd:attribute name="sector" type="xsd:string" > use="required"/> > <xsd:attribute name="RIC" type="xsd:string"/> > <xsd:attribute name="RICROOT" type="xsd:string"/> > <xsd:attribute name="ISIN" type="xsd:string"/> > <xsd:attribute default="EQUITY" name="type" > type="productType"/> > <xsd:attribute name="currency" type="xsd:string" > use="required"/> > <xsd:attribute name="countryCode" type="xsd:string"/> > <xsd:attribute name="standardSize" type="xsd:int" > use="required"/> > <xsd:attribute name="multiplier" type="xsd:double" > use="required"/> > </xsd:complexType> > <xsd:complexType name="OptionInfo"> > <xsd:attribute default="TRUE" name="call" type="boolean"/> > <xsd:attribute name="strike" type="xsd:decimal" > use="required"/> > <xsd:attribute name="maturity" type="date" use="required"/> > <xsd:attribute default="TRUE" name="european" > type="boolean"/> > <xsd:attribute default="FALSE" name="percent" > type="boolean"/> > </xsd:complexType> > <xsd:complexType name="FutureInfo"> > <xsd:attribute name="maturity" type="xsd:string" > use="required"/> > </xsd:complexType> > <xsd:complexType name="ConfirmationHeader"> > <xsd:sequence> > <xsd:element name="Client1" type="Client"/> > <xsd:element name="Client2" type="Client"/> > <xsd:element name="TradeIdentification" > type="TradeIdentification"/> > <xsd:element maxOccurs="unbounded" name="User" > type="User"/> > </xsd:sequence> > <xsd:attribute default="2" name="type" > type="productTypeInt"/> > </xsd:complexType> > <xsd:complexType name="LegConfirmation"> > <xsd:sequence> > <xsd:element name="Leg" type="Leg"/> > </xsd:sequence> > <xsd:attribute name="size" type="xsd:integer" > use="required"/> > <xsd:attribute default="TRUE" name="buy" type="boolean"/> > <xsd:attribute default="FALSE" name="listed" > type="boolean"/> > <xsd:attribute name="price" type="xsd:decimal" > use="required"/> > <xsd:attribute name="premium" type="xsd:string"/> > <xsd:attribute name="blockTradeRef" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="UnderlyingSettlement"> > <xsd:sequence> > <xsd:element name="ProductInfo" type="ProductInfo"/> > <xsd:element > maxOccurs="unbounded" > minOccurs="0" > name="Settlements" > type="Settlements"/> > </xsd:sequence> > <xsd:attribute name="exchangeName" type="xsd:string" > use="required"/> > <xsd:attribute name="buy" type="xsd:string" use="required"/> > <xsd:attribute name="size" type="xsd:string" > use="required"/> > <xsd:attribute name="price" type="xsd:string" > use="required"/> > <xsd:attribute name="settlement" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="Billing"> > <xsd:attribute name="currency" type="xsd:string" > use="required"/> > <xsd:attribute name="fee" type="xsd:string" use="required"/> > <xsd:attribute name="justification" type="xsd:string" > use="required"/> > </xsd:complexType> > <xsd:complexType name="Client"> > <xsd:attribute default="TRADING" name="type" > type="clientType"/> > <xsd:attribute name="name" type="xsd:string" > use="required"/> > <xsd:attribute name="address" type="xsd:string" > use="required"/> > <xsd:attribute name="zipCode" type="xsd:string" > use="required"/> > <xsd:attribute name="city" type="xsd:string" > use="required"/> > <xsd:attribute name="country" type="xsd:string" > use="required"/> > <xsd:attribute name="vat" type="xsd:string"/> > </xsd:complexType> > <xsd:complexType name="SettlementAccounts"> > <xsd:attribute name="underlyingAccount" type="xsd:string"/> > <xsd:attribute name="optionAccount" type="xsd:string"/> > </xsd:complexType> > <!-- Fifth Level --> > <xsd:complexType mixed="true" name="Delta"> > <xsd:attribute name="number" type="xsd:double" > use="required"/> > </xsd:complexType> > <xsd:complexType name="TradeIdentification"> > <xsd:attribute name="tradeId" type="xsd:string" > use="required"/> > <xsd:attribute name="tradeNumber" type="xsd:string" > use="required"/> > <xsd:attribute name="interestNumber" type="xsd:string" > use="required"/> > <xsd:attribute name="tradeDate" type="xsd:string" > use="required"/> > </xsd:complexType> > <xsd:complexType name="Settlements"> > <xsd:attribute name="settlement" type="xsd:string" > use="required"/> > </xsd:complexType> > <xsd:complexType name="Future"> > <xsd:sequence> > <xsd:element maxOccurs="1" name="ProductInfo" > type="ProductInfo"/> > </xsd:sequence> > <xsd:attribute name="id" type="uuid"/> > <xsd:attribute name="symbol" type="xsd:string"/> > <xsd:attribute name="exchangeName" type="xsd:string"/> > <xsd:attribute name="sector" type="xsd:string"/> > <xsd:attribute name="RIC" type="xsd:string"/> > <xsd:attribute name="RICROOT" type="xsd:string"/> > <xsd:attribute name="ISIN" type="xsd:string"/> > <xsd:attribute default="EQUITY" name="type" > type="productType"/> > <xsd:attribute name="currency" type="xsd:string"/> > <xsd:attribute name="standardSize" type="xsd:string"/> > <xsd:attribute name="multiplier" type="xsd:string"/> > <xsd:attribute name="maturity" type="date" use="required"/> > </xsd:complexType> > </xsd:schema> > </wsdl:types> > <wsdl:message name="getMarketResponse"> > <wsdl:part name="marketData" type="bhub:OTCxml"/> > </wsdl:message> > <wsdl:message name="getMarketRequest"> </wsdl:message> > <wsdl:portType name="MarketData"> > <wsdl:operation name="getMarket"> > <wsdl:input message="tns:getMarketRequest"/> > <wsdl:output message="tns:getMarketResponse"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="MarketDataBinding" type="tns:MarketData"> > <soap:binding style="rpc" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="getMarket"> > <soap:operation soapAction="capeconnect::MarketData#getMarket"/> > <wsdl:input> > <soap:body use="literal"/> > </wsdl:input> > <wsdl:output> > <soap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="getMarketService"> > <wsdl:port binding="tns:MarketDataBinding" name="getMarket"> > <soap:address > location="http://192.168.1.101/axis/services/getMarketService"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > ------------------------------------ > END -------------------------------------- > >