<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. -->
<definitions targetNamespace="http://ws.estoque.caelum.com.br/" name="EstoqueWSService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:tns="http://ws.estoque.caelum.com.br/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <types>
    <xs:schema version="1.0" targetNamespace="http://ws.estoque.caelum.com.br/" xmlns:xs="http://www.w3.org/2001/XMLSchema">

      <xs:element name="AutorizacaoFault" nillable="true" type="xs:string"/>

      <xs:element name="CadastrarItem" type="tns:CadastrarItem"/>

      <xs:element name="CadastrarItemResponse" type="tns:CadastrarItemResponse"/>

      <xs:element name="TodosOsItens" type="tns:TodosOsItens"/>

      <xs:element name="TodosOsItensResponse" type="tns:TodosOsItensResponse"/>

      <xs:element name="filtros" type="tns:filtros"/>

      <xs:element name="listaItens" type="tns:listaItens"/>

      <xs:element name="tokenUsuario" nillable="true" type="tns:tokenUsuario"/>

      <xs:complexType name="TodosOsItens">
        <xs:sequence>
          <xs:element ref="tns:filtros" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="filtros">
        <xs:sequence>
          <xs:element name="filtro" type="tns:filtro" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="filtro">
        <xs:sequence>
          <xs:element name="nome" type="xs:string" minOccurs="0"/>
          <xs:element name="tipo" type="tns:tipoItem" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="TodosOsItensResponse">
        <xs:sequence>
          <xs:element name="itens" type="tns:listaItens" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="listaItens">
        <xs:sequence>
          <xs:element name="item" type="tns:item" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="item">
        <xs:sequence>
          <xs:element name="codigo" type="xs:string" minOccurs="0"/>
          <xs:element name="nome" type="xs:string" minOccurs="0"/>
          <xs:element name="quantidade" type="xs:int"/>
          <xs:element name="tipo" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="CadastrarItem">
        <xs:sequence>
          <xs:element name="item" type="tns:item" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="tokenUsuario">
        <xs:sequence>
          <xs:element name="dataValidade" type="xs:dateTime" minOccurs="0"/>
          <xs:element name="token" type="xs:string" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="CadastrarItemResponse">
        <xs:sequence>
          <xs:element name="item" type="tns:item" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>

      <xs:simpleType name="tipoItem">
        <xs:restriction base="xs:string">
          <xs:enumeration value="Livro"/>
          <xs:enumeration value="Celular"/>
          <xs:enumeration value="Tablet"/>
        </xs:restriction>
      </xs:simpleType>
</xs:schema>
  </types>
  <message name="TodosOsItens">
    <part name="parameters" element="tns:TodosOsItens"/>
  </message>
  <message name="TodosOsItensResponse">
    <part name="parameters" element="tns:TodosOsItensResponse"/>
  </message>
  <message name="CadastrarItem">
    <part name="parameters" element="tns:CadastrarItem"/>
    <part name="tokenUsuario" element="tns:tokenUsuario"/>
  </message>
  <message name="CadastrarItemResponse">
    <part name="result" element="tns:CadastrarItemResponse"/>
  </message>
  <message name="AutorizacaoFault">
    <part name="fault" element="tns:AutorizacaoFault"/>
  </message>
  <portType name="EstoqueWS">
    <operation name="TodosOsItens">
      <input wsam:Action="http://ws.estoque.caelum.com.br/EstoqueWS/TodosOsItensRequest" message="tns:TodosOsItens"/>
      <output wsam:Action="http://ws.estoque.caelum.com.br/EstoqueWS/TodosOsItensResponse" message="tns:TodosOsItensResponse"/>
    </operation>
    <operation name="CadastrarItem" parameterOrder="parameters tokenUsuario">
      <input wsam:Action="http://ws.estoque.caelum.com.br/EstoqueWS/CadastrarItemRequest" message="tns:CadastrarItem"/>
      <output wsam:Action="http://ws.estoque.caelum.com.br/EstoqueWS/CadastrarItemResponse" message="tns:CadastrarItemResponse"/>
      <fault message="tns:AutorizacaoFault" name="AutorizacaoFault" wsam:Action="http://ws.estoque.caelum.com.br/EstoqueWS/CadastrarItem/Fault/AutorizacaoException"/>
    </operation>
  </portType>
  <binding name="EstoqueWSPortBinding" type="tns:EstoqueWS">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="TodosOsItens">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
    <operation name="CadastrarItem">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal" parts="parameters"/>
        <soap:header message="tns:CadastrarItem" part="tokenUsuario" use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
      <fault name="AutorizacaoFault">
        <soap:fault name="AutorizacaoFault" use="literal"/>
      </fault>
    </operation>
  </binding>
  <service name="EstoqueWSService">
    <port name="EstoqueWSPort" binding="tns:EstoqueWSPortBinding">
      <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
    </port>
  </service>
</definitions>

