<?xml version="1.0" encoding="UTF-8"?>
<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.5-hudson-$BUILD_NUMBER-. -->
<xs:schema xmlns:tns="http://www.sist.puglia.it/Schemas/PDD_SIST/SCATEL/FSE/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0" targetNamespace="http://www.sist.puglia.it/Schemas/PDD_SIST/SCATEL/FSE/">

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

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

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

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

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

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

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

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

<xs:complexType name="retrieveDocument">
<xs:sequence>
<xs:element name="documentURI" type="tns:documentURI" minOccurs="0"/>
<xs:element form="qualified" minOccurs="0" name="patientId" type="xs:string"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="documentURI">
<xs:sequence>
<xs:element name="documentID" type="xs:string" minOccurs="0"/>
<xs:element name="regionalNode" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="retrieveDocumentResponse">
<xs:sequence>
<xs:element name="documentRetrieve" type="tns:documentRetrieve" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="documentRetrieve">
<xs:sequence>
<xs:element name="document" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="documentName" type="xs:string" minOccurs="0"/>
<xs:element name="status" type="xs:string" minOccurs="0"/>
<xs:element name="binaryDocument" type="xs:base64Binary" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="binaryName" type="xs:string" minOccurs="0"/>
<xs:element name="mimeType" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="queryDocument">
<xs:sequence>
<xs:element name="query" type="tns:adHocQuery" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="adHocQuery">
<xs:sequence>
<xs:element name="dateFrom" type="xs:dateTime" minOccurs="0"/>
<xs:element name="dateTo" type="xs:dateTime" minOccurs="0"/>
<xs:element name="documentTypes" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="patientId" type="tns:patientIdentifier" minOccurs="0"/>
<xs:element name="documentStatus" type="xs:string" minOccurs="0"/>
<xs:element name="documentURIs" type="tns:documentURI" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="customCriteria" type="tns:criteria" minOccurs="0" maxOccurs="unbounded"/>
<xs:element minOccurs="0" name="filterByAuthor" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="patientIdentifier">
<xs:sequence>
<xs:element name="root" type="xs:string" minOccurs="0"/>
<xs:element name="extension" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="criteria">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="0"/>
<xs:element name="value" type="tns:value" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="value">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="0"/>
<xs:element name="code" type="xs:string" minOccurs="0"/>
<xs:element name="description" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="queryDocumentResponse">
<xs:sequence>
<xs:element name="documents" type="tns:adHocQueryResponse" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

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

<xs:complexType name="documentInfo">
<xs:sequence>
<xs:element name="documentURI" type="tns:documentURI" minOccurs="0"/>
<xs:element name="documentType" type="xs:string" minOccurs="0"/>
<xs:element name="metadata" type="tns:metadata" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="assertions" type="tns:samlAssertion" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="metadata">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="0"/>
<xs:element name="values" type="tns:value" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="samlAssertion">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="0"/>
<xs:element name="attributeStatement" type="tns:attributeStatement" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

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

<xs:complexType name="attribute">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="type" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="addDocument">
<xs:sequence>
<xs:element name="document" type="tns:document" minOccurs="0"/>
<xs:element name="repositoryDocumentURI" type="tns:repositoryDocumentURI" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="document">
<xs:sequence>
<xs:element name="document" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="documentName" type="xs:string" minOccurs="0"/>
<xs:element name="status" type="xs:string" minOccurs="0"/>
<xs:element name="binaryDocument" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="binaryName" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="repositoryDocumentURI">
<xs:sequence>
<xs:element name="documentID" type="xs:string" minOccurs="0"/>
<xs:element name="localNode" type="xs:string" minOccurs="0"/>
<xs:element name="regionalNode" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="addDocumentResponse">
<xs:sequence>
<xs:element name="documentURI" type="tns:documentURI" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="updateDocument">
<xs:sequence>
<xs:element name="documentURI" type="tns:documentURI" minOccurs="0"/>
<xs:element name="document" type="tns:document" minOccurs="0"/>
<xs:element name="repositoryDocumentURI" type="tns:repositoryDocumentURI" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="updateDocumentResponse">
<xs:sequence>
<xs:element name="documentURI" type="tns:documentURI" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>