  1. [    Home ](/)
2. [Integrations](/integrations)
3. Library Catalogue SOAP Service
 
  SOAP / Web Service (WSDL)  SOAP 1.1 

# Library Catalogue SOAP Service

 

  Overview  Operations 2   Data types 6  Documentation Connection  Source 4  

 The Library Catalogue service exposes the classic SOAP/WSDL interface used by branch desktop clients and partner aggregators. It offers catalogue lookup and reservation operations backed by the central inventory. The WSDL and its XML Schemas are attached — the marketplace renders every operation with sample request and response envelopes, and resolves the cross-namespace schema imports into a browsable data-type reference.



 

  Service type SOAP / Web Service (WSDL) 

 Target namespace `http://example.com/library` 

 Endpoint `https://soap.example-library.com/services/catalogue` 

 Library SOAP service for catalog lookups and reservations.

 Tags soap legacy inventory 

     GetBook document Fetch a book by its ISBN.

 SOAP action`http://example.com/library/GetBook`

Request`GetBookRequest`

Response`GetBookResponse`

  Sample request Example envelope — placeholder values 

 ```
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:tns="http://example.com/library">
  <soapenv:Header/>
  <soapenv:Body>
    <GetBookRequest>
      <isbn>string</isbn>
    </GetBookRequest>
  </soapenv:Body>
</soapenv:Envelope>

```

 

 Sample response Example envelope — placeholder values 

 ```
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:tns="http://example.com/library">
  <soapenv:Header/>
  <soapenv:Body>
    <GetBookResponse>
      <book isbn="string">
        <title>string</title>
        <author>string</author>
        <publisher>
          <name>string</name>
          <foundedYear>0</foundedYear>
        </publisher>
        <shippingAddress>
          <street>string</street>
          <city>string</city>
          <postcode>string</postcode>
        </shippingAddress>
        <country>US</country>
      </book>
    </GetBookResponse>
  </soapenv:Body>
</soapenv:Envelope>

```

 

 

 

    ReserveBook document Reserve an available copy of a book.

 SOAP action`http://example.com/library/ReserveBook`

Request`ReserveBookRequest`

Response`ReserveBookResponse`

  Sample request Example envelope — placeholder values 

 ```
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:tns="http://example.com/library">
  <soapenv:Header/>
  <soapenv:Body>
    <GetBookRequest>
      <isbn>string</isbn>
    </GetBookRequest>
  </soapenv:Body>
</soapenv:Envelope>

```

 

 Sample response Example envelope — placeholder values 

 ```
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:tns="http://example.com/library">
  <soapenv:Header/>
  <soapenv:Body>
    <GetBookResponse>
      <book isbn="string">
        <title>string</title>
        <author>string</author>
        <publisher>
          <name>string</name>
          <foundedYear>0</foundedYear>
        </publisher>
        <shippingAddress>
          <street>string</street>
          <city>string</city>
          <postcode>string</postcode>
        </shippingAddress>
        <country>US</country>
      </book>
    </GetBookResponse>
  </soapenv:Body>
</soapenv:Envelope>

```

 

 

 

  

  ### Namespaces

- `common:` http://example.com/common 2 types
- `lib:` http://example.com/library 4 types
 
 

### Imports &amp; includes

- import `common-types.xsd` resolved
- include `library-elements.xsd` resolved
- import `common-types.xsd` resolved
- include `book-types.xsd` resolved
 
 

 complexType common:Address 

A postal address shared across services.

   FieldTypeCardinalityDescription    `street` `xs:string` 1..1    `city` `xs:string` 1..1    `postcode` `xs:string` 0..1     

 simpleType common:CountryCode : xs:string 

ISO 3166-1 alpha-2 country code (subset).

   FieldTypeCardinalityDescription    `US` `enum`     `GB` `enum`     `DE` `enum`      

 complexType lib:Book 

A catalogued book with shipping details.

   FieldTypeCardinalityDescription    `title` `xs:string` 1..1    `author` `xs:string` 1..1    `publisher` `lib:Publisher` 0..1    `shippingAddress` `common:Address` 0..1    `country` `common:CountryCode` 0..1    `@isbn` `xs:string` 1..1     

 element lib:GetBookRequest 

   FieldTypeCardinalityDescription    `isbn` `xs:string` 1..1     

 element lib:GetBookResponse 

   FieldTypeCardinalityDescription    `book` `lib:Book` 1..1     

 complexType lib:Publisher 

Publisher of a catalogued book.

   FieldTypeCardinalityDescription    `name` `xs:string` 1..1    `foundedYear` `xs:int` 0..1     

 

  Point your SOAP client at the endpoint below and import the attached WSDL. All operations use document/literal binding. Faults follow the standard SOAP 1.1 fault envelope with a service-specific error code list in the schema.



 

   Endpoint`https://soap.example-library.com/services/catalogue`

SOAP version1.1

 ### Specification files

- [ WSDL library.wsdl ](/sites/default/files/service-specs/demo-library-soap/library.wsdl)
- [ XSD common-types.xsd ](/sites/default/files/service-specs/demo-library-soap/common-types.xsd)
- [ XSD book-types.xsd ](/sites/default/files/service-specs/demo-library-soap/book-types.xsd)
- [ XSD library-elements.xsd ](/sites/default/files/service-specs/demo-library-soap/library-elements.xsd)
 
  Read-only view of the attached service definitions. Use the Connection tab to download the originals.

   WSDL library.wsdl  ```
<span class="xmlh-pi"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:definitions</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"LibraryService"</span>
    <span class="xmlh-attr">targetNamespace</span>=<span class="xmlh-val">"http://example.com/library"</span>
    <span class="xmlh-attr">xmlns:wsdl</span>=<span class="xmlh-val">"http://schemas.xmlsoap.org/wsdl/"</span>
    <span class="xmlh-attr">xmlns:soap</span>=<span class="xmlh-val">"http://schemas.xmlsoap.org/wsdl/soap/"</span>
    <span class="xmlh-attr">xmlns:xs</span>=<span class="xmlh-val">"http://www.w3.org/2001/XMLSchema"</span>
    <span class="xmlh-attr">xmlns:tns</span>=<span class="xmlh-val">"http://example.com/library"</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:documentation</span><span class="xmlh-punct">></span>Library SOAP service for catalog lookups and reservations.<span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:documentation</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:types</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:schema</span> <span class="xmlh-attr">targetNamespace</span>=<span class="xmlh-val">"http://example.com/library"</span>
               <span class="xmlh-attr">xmlns:common</span>=<span class="xmlh-val">"http://example.com/common"</span>
               <span class="xmlh-attr">xmlns:lib</span>=<span class="xmlh-val">"http://example.com/library"</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:import</span> <span class="xmlh-attr">namespace</span>=<span class="xmlh-val">"http://example.com/common"</span> <span class="xmlh-attr">schemaLocation</span>=<span class="xmlh-val">"common-types.xsd"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:include</span> <span class="xmlh-attr">schemaLocation</span>=<span class="xmlh-val">"book-types.xsd"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:schema</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:types</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:message</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"GetBookRequest"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:part</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"parameters"</span> <span class="xmlh-attr">element</span>=<span class="xmlh-val">"tns:GetBookRequest"</span><span class="xmlh-punct">/></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:message</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:message</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"GetBookResponse"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:part</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"parameters"</span> <span class="xmlh-attr">element</span>=<span class="xmlh-val">"tns:GetBookResponse"</span><span class="xmlh-punct">/></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:message</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:message</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"ReserveBookRequest"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:part</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"parameters"</span> <span class="xmlh-attr">element</span>=<span class="xmlh-val">"tns:GetBookRequest"</span><span class="xmlh-punct">/></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:message</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:message</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"ReserveBookResponse"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:part</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"parameters"</span> <span class="xmlh-attr">element</span>=<span class="xmlh-val">"tns:GetBookResponse"</span><span class="xmlh-punct">/></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:message</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:portType</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"LibraryPortType"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:operation</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"GetBook"</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:documentation</span><span class="xmlh-punct">></span>Fetch a book by its ISBN.<span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:documentation</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:input</span> <span class="xmlh-attr">message</span>=<span class="xmlh-val">"tns:GetBookRequest"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:output</span> <span class="xmlh-attr">message</span>=<span class="xmlh-val">"tns:GetBookResponse"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:operation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:operation</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"ReserveBook"</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:documentation</span><span class="xmlh-punct">></span>Reserve an available copy of a book.<span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:documentation</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:input</span> <span class="xmlh-attr">message</span>=<span class="xmlh-val">"tns:ReserveBookRequest"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:output</span> <span class="xmlh-attr">message</span>=<span class="xmlh-val">"tns:ReserveBookResponse"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:operation</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:portType</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:binding</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"LibraryBinding"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"tns:LibraryPortType"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">soap:binding</span> <span class="xmlh-attr">style</span>=<span class="xmlh-val">"document"</span> <span class="xmlh-attr">transport</span>=<span class="xmlh-val">"http://schemas.xmlsoap.org/soap/http"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:operation</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"GetBook"</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">soap:operation</span> <span class="xmlh-attr">soapAction</span>=<span class="xmlh-val">"http://example.com/library/GetBook"</span> <span class="xmlh-attr">style</span>=<span class="xmlh-val">"document"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:input</span><span class="xmlh-punct">></span><span class="xmlh-punct"><</span><span class="xmlh-tag">soap:body</span> <span class="xmlh-attr">use</span>=<span class="xmlh-val">"literal"</span><span class="xmlh-punct">/></span><span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:input</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:output</span><span class="xmlh-punct">></span><span class="xmlh-punct"><</span><span class="xmlh-tag">soap:body</span> <span class="xmlh-attr">use</span>=<span class="xmlh-val">"literal"</span><span class="xmlh-punct">/></span><span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:output</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:operation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:operation</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"ReserveBook"</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">soap:operation</span> <span class="xmlh-attr">soapAction</span>=<span class="xmlh-val">"http://example.com/library/ReserveBook"</span> <span class="xmlh-attr">style</span>=<span class="xmlh-val">"document"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:input</span><span class="xmlh-punct">></span><span class="xmlh-punct"><</span><span class="xmlh-tag">soap:body</span> <span class="xmlh-attr">use</span>=<span class="xmlh-val">"literal"</span><span class="xmlh-punct">/></span><span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:input</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:output</span><span class="xmlh-punct">></span><span class="xmlh-punct"><</span><span class="xmlh-tag">soap:body</span> <span class="xmlh-attr">use</span>=<span class="xmlh-val">"literal"</span><span class="xmlh-punct">/></span><span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:output</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:operation</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:binding</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:service</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"LibraryService"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">wsdl:port</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"LibraryPort"</span> <span class="xmlh-attr">binding</span>=<span class="xmlh-val">"tns:LibraryBinding"</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">soap:address</span> <span class="xmlh-attr">location</span>=<span class="xmlh-val">"https://api.example.com/library/v1"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:port</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:service</span><span class="xmlh-punct">></span>

<span class="xmlh-punct"></</span><span class="xmlh-tag">wsdl:definitions</span><span class="xmlh-punct">></span>

```

    XSD common-types.xsd  ```
<span class="xmlh-pi"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="xmlh-punct"><</span><span class="xmlh-tag">xs:schema</span> <span class="xmlh-attr">xmlns:xs</span>=<span class="xmlh-val">"http://www.w3.org/2001/XMLSchema"</span>
           <span class="xmlh-attr">xmlns:common</span>=<span class="xmlh-val">"http://example.com/common"</span>
           <span class="xmlh-attr">targetNamespace</span>=<span class="xmlh-val">"http://example.com/common"</span>
           <span class="xmlh-attr">elementFormDefault</span>=<span class="xmlh-val">"qualified"</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:complexType</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"Address"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>A postal address shared across services.<span class="xmlh-punct"></</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"street"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"city"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"postcode"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span> <span class="xmlh-attr">minOccurs</span>=<span class="xmlh-val">"0"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:complexType</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:simpleType</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"CountryCode"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>ISO 3166-1 alpha-2 country code (subset).<span class="xmlh-punct"></</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:restriction</span> <span class="xmlh-attr">base</span>=<span class="xmlh-val">"xs:string"</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:enumeration</span> <span class="xmlh-attr">value</span>=<span class="xmlh-val">"US"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:enumeration</span> <span class="xmlh-attr">value</span>=<span class="xmlh-val">"GB"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:enumeration</span> <span class="xmlh-attr">value</span>=<span class="xmlh-val">"DE"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:restriction</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:simpleType</span><span class="xmlh-punct">></span>

<span class="xmlh-punct"></</span><span class="xmlh-tag">xs:schema</span><span class="xmlh-punct">></span>

```

    XSD book-types.xsd  ```
<span class="xmlh-pi"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="xmlh-punct"><</span><span class="xmlh-tag">xs:schema</span> <span class="xmlh-attr">xmlns:xs</span>=<span class="xmlh-val">"http://www.w3.org/2001/XMLSchema"</span>
           <span class="xmlh-attr">xmlns:common</span>=<span class="xmlh-val">"http://example.com/common"</span>
           <span class="xmlh-attr">xmlns:lib</span>=<span class="xmlh-val">"http://example.com/library"</span>
           <span class="xmlh-attr">targetNamespace</span>=<span class="xmlh-val">"http://example.com/library"</span>
           <span class="xmlh-attr">elementFormDefault</span>=<span class="xmlh-val">"qualified"</span><span class="xmlh-punct">></span>

  <span class="xmlh-comment"><!-- Cross-namespace import: resolved against common-types.xsd in the set. --></span>
  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:import</span> <span class="xmlh-attr">namespace</span>=<span class="xmlh-val">"http://example.com/common"</span> <span class="xmlh-attr">schemaLocation</span>=<span class="xmlh-val">"common-types.xsd"</span><span class="xmlh-punct">/></span>
  <span class="xmlh-comment"><!-- Same-namespace include: resolved against library-elements.xsd in the set. --></span>
  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:include</span> <span class="xmlh-attr">schemaLocation</span>=<span class="xmlh-val">"library-elements.xsd"</span><span class="xmlh-punct">/></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:complexType</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"Book"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>A catalogued book with shipping details.<span class="xmlh-punct"></</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"title"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"author"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"publisher"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"lib:Publisher"</span> <span class="xmlh-attr">minOccurs</span>=<span class="xmlh-val">"0"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"shippingAddress"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"common:Address"</span> <span class="xmlh-attr">minOccurs</span>=<span class="xmlh-val">"0"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"country"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"common:CountryCode"</span> <span class="xmlh-attr">minOccurs</span>=<span class="xmlh-val">"0"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:attribute</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"isbn"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span> <span class="xmlh-attr">use</span>=<span class="xmlh-val">"required"</span><span class="xmlh-punct">/></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:complexType</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"GetBookRequest"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:complexType</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
        <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"isbn"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:complexType</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:element</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"GetBookResponse"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:complexType</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
        <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"book"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"lib:Book"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:complexType</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:element</span><span class="xmlh-punct">></span>

<span class="xmlh-punct"></</span><span class="xmlh-tag">xs:schema</span><span class="xmlh-punct">></span>

```

    XSD library-elements.xsd  ```
<span class="xmlh-pi"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="xmlh-punct"><</span><span class="xmlh-tag">xs:schema</span> <span class="xmlh-attr">xmlns:xs</span>=<span class="xmlh-val">"http://www.w3.org/2001/XMLSchema"</span>
           <span class="xmlh-attr">xmlns:lib</span>=<span class="xmlh-val">"http://example.com/library"</span>
           <span class="xmlh-attr">targetNamespace</span>=<span class="xmlh-val">"http://example.com/library"</span>
           <span class="xmlh-attr">elementFormDefault</span>=<span class="xmlh-val">"qualified"</span><span class="xmlh-punct">></span>

  <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:complexType</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"Publisher"</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>Publisher of a catalogued book.<span class="xmlh-punct"></</span><span class="xmlh-tag">xs:documentation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:annotation</span><span class="xmlh-punct">></span>
    <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"name"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:string"</span><span class="xmlh-punct">/></span>
      <span class="xmlh-punct"><</span><span class="xmlh-tag">xs:element</span> <span class="xmlh-attr">name</span>=<span class="xmlh-val">"foundedYear"</span> <span class="xmlh-attr">type</span>=<span class="xmlh-val">"xs:int"</span> <span class="xmlh-attr">minOccurs</span>=<span class="xmlh-val">"0"</span><span class="xmlh-punct">/></span>
    <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:sequence</span><span class="xmlh-punct">></span>
  <span class="xmlh-punct"></</span><span class="xmlh-tag">xs:complexType</span><span class="xmlh-punct">></span>

<span class="xmlh-punct"></</span><span class="xmlh-tag">xs:schema</span><span class="xmlh-punct">></span>

```