Consuming Web services with
Microsoft Axis
Part of BookMARC TVS papers
Axis is a SOAP compliant Java package. Axis is available
at http://xml.apache.org/axis/index.html.
To consume the Web services we are going to use the
WSDL2Java Axis tool. The purpose of this tool is to create the Java
code from a WSDL.
In this case we are going to use WSDL2Java to create
only the client bindings:
- Download Axis and extract it into a folder
- Add Axis to your classpath
- Execute the following command, in the command line:
java
org.apache.axis.wsdl.WSDL2Java -o . (WSDL-file-URL)
- Add the generated files to a Java project. The
WSDL2Java will generate the following files:
- A Java class for each data type
- An interface that is used to access the operations
of the service
- An interface for the service
- A stub class that contains the code which turns the
methods invocations into SOAP calls
- A service implementation (the locator)
- See the services description bellow for some code
examples
Monitoring
Axis includes a TCP monitor that can be used to monitor
the SOAP calls to the services. See the next steps to know how to use
the Axis TCP monitor.
- Make sure Axis is in your classpath
- Execute the following command, in the command line:
java
org.apache.axis.utils.tcpmon
- In the admin tab add the following values:
- Listen port# - select a local port to be monitored
(example: 9090)
- Target hostname - sirius.bn.pt
- Target port# - 80
- Click Add
- The monitor is ready, now a litle change to the
generated code must be done:
- Open the Locator class and change the
Search_address variable value to:
http://localhost:9090/sirius/sirius2.exe
- Now we can see the SOAP request and the service
SOAP response
Get Record by ISBN
Input parameters |
|
Output parameters |
|
Sample code
|
public class GetRecordByISBN { public static void main(String[] args) { BufferedReader cLine = new BufferedReader(new InputStreamReader(System.in)); String isbn = "3-598-11211-4"; try { // create a new Web service GetRecordService service = new GetRecordServiceLocator(); GetRecord port = service.getGetRecord(); System.out.println("=== GetRecordByISBN Started ==="); System.out.println("=== Type 'exit' to quit! ==="); System.out.print("ISBN (3-598-11211-4): "); isbn = cLine.readLine(); while (!isbn.equalsIgnoreCase("exit")) { // invoke the service with the given ISBN and store the result in a MarcXML object MarcXML record = port.getRecordByISBN(isbn); String result = new String(); for (int idx = 0; idx < record.getFields().length; idx++) result += record.getFields()[idx].getTag() + ": " + record.getFields()[idx].getContent() + System.getProperty("line.separator"); System.out.println("==========================================================="); System.out.println("RECORD:"); System.out.println("==========================================================="); System.out.println(result); System.out.println("==========================================================="); System.out.print("ISBN (3-598-11211-4): "); isbn = cLine.readLine(); } System.out.println("=== GetRecordByISBN Terminated ==="); } catch(RemoteException e) { e.printStackTrace(); } catch(ServiceException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } }
|
SOAP Call
|
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:getRecordByISBN xmlns:ns1="getRecordByISBN"> <isbn xsi:type="xsd:string">3-598-11211-4</isbn> </ns1:getRecordByISBN> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
|
SOAP Answer
|
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> <s:session xmlns:s="http://sirius.bookmarc.pt/soap-ns"> <id>E03933B9-B99E-4647-8C7A-47EE7D89FE60</id> <user/> </s:session> </SOAP-ENV:Header> <SOAP-ENV:Body> <methodns:getRecordByISBNResponse xmlns:methodns="getRecordByISBN"> <marcXML xsi:type="typens:MarcXML" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:typens="http://sirius.bookmarc.pt/soap-ns"> <leader xsi:type="typens:LeaderXML"> <content xsi:type="xsd:string"><![CDATA[00626nam 5 002055 45 ]]></content> <bibliographicLevel xsi:type="xsd:string"><![CDATA[m]]></bibliographicLevel> <cataloguingForm xsi:type="xsd:string"><![CDATA[ ]]></cataloguingForm> <encodingLevel xsi:type="xsd:string"><![CDATA[5]]></encodingLevel> <hierarchicalLevelCode xsi:type="xsd:string"><![CDATA[ ]]></hierarchicalLevelCode> <recordStatus xsi:type="xsd:string"><![CDATA[n]]></recordStatus> <recordType xsi:type="xsd:string"><![CDATA[a]]></recordType> </leader> <fields xsi:type="typens:ArrayOf_FieldXML" SOAP-ENC:arrayType="typens:FieldXML[15]" xmlns:marcns="urn:Marc"> <field> <tag xsi:type="xsd:string">001</tag> <content xsi:type="xsd:string"><![CDATA[667855]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">0</pos> <subfields xsi:nil="true"/> </field> <field> <tag xsi:type="xsd:string">005</tag> <content xsi:type="xsd:string"><![CDATA[19990106000000.0]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">1</pos> <subfields xsi:nil="true"/> </field> <field> <tag xsi:type="xsd:string">010</tag> <content xsi:type="xsd:string"><![CDATA[ ^a3-598-11211-4]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">2</pos> <subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]"> <subfield> <tag xsi:type="xsd:string">a</tag> <content xsi:type="xsd:string"><![CDATA[3-598-11211-4]]></content> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">1</pos> </subfield> </subfields> </field> <field> <tag xsi:type="xsd:string">095</tag> <content xsi:type="xsd:string"><![CDATA[ ^aPTBN00879584]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">3</pos> <subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]"> <subfield> <tag xsi:type="xsd:string">a</tag> <content xsi:type="xsd:string"><![CDATA[PTBN00879584]]></content> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">1</pos> </subfield> </subfields> </field> <field> <tag xsi:type="xsd:string">100</tag> <content xsi:type="xsd:string"><![CDATA[ ^a19950506d1994 k y0pory0103 ba]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">4</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[19950506d1994 k y0pory0103 ba]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">101</tag>
<content xsi:type="xsd:string"><![CDATA[0 ^aeng]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[0]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">5</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[eng]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">102</tag>
<content xsi:type="xsd:string"><![CDATA[ ^aDE]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">6</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[DE]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">200</tag>
<content xsi:type="xsd:string">
<![CDATA[1 ^aUnimarc manual^ebibliographic format^fInternational Federation of Library Associations and Institutions]]>
</content>
<indicator1 xsi:type="xsd:string"><![CDATA[1]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">7</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[Unimarc manual]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">e</tag>
<content xsi:type="xsd:string"><![CDATA[bibliographic format]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">f</tag>
<content xsi:type="xsd:string">
<![CDATA[International Federation of Library Associations and Institutions]]>
</content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">205</tag>
<content xsi:type="xsd:string"><![CDATA[ ^a2nd ed]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">8</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[2nd ed]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">210</tag>
<content xsi:type="xsd:string"><![CDATA[ ^aMunchen^cK. G. Saur,^d1994]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">9</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[Munchen]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">c</tag>
<content xsi:type="xsd:string"><![CDATA[K. G. Saur,]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">d</tag>
<content xsi:type="xsd:string"><![CDATA[1994]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">215</tag>
<content xsi:type="xsd:string"><![CDATA[ ^a802, [90] p., pag. var]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">10</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[802, [90] p., pag. var]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">225</tag>
<content xsi:type="xsd:string"><![CDATA[2 ^aUBCIM Publications^hNew series^vvol. 14)]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[2]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">11</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[UBCIM Publications]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">h</tag>
<content xsi:type="xsd:string"><![CDATA[New series]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">v</tag>
<content xsi:type="xsd:string"><![CDATA[vol. 14)]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">710</tag>
<content xsi:type="xsd:string"><![CDATA[02^aInternational Federation of Library Associations]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[0]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[2]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">12</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[International Federation of Library Associations]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">801</tag>
<content xsi:type="xsd:string"><![CDATA[ 0^aPT^bBN^gRPC]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[0]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">13</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[PT]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">b</tag>
<content xsi:type="xsd:string"><![CDATA[BN]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">g</tag>
<content xsi:type="xsd:string"><![CDATA[RPC]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">998</tag>
<content xsi:type="xsd:string"><![CDATA[ ^aUAV78-393]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">14</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[UAV78-393]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
</fields>
</marcXML>
</methodns:getRecordByISBNResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
Search
Input parameters |
- terms - Array of Strings. Each term identifies
the search prefix, matches the corresponding value. See the next term
list for details:
- AS - Subject
- AU - Author
- DP - Publishing date
- CDU - Universal Decimal Classification
- ED - Publisher
- COL - Series
- ISBN - ISBN
- TI - Title
- empty term - Word search
- values - Array of Strings. The values to search
for. Values can be prefixed with logical operators to restrict the
search result:
- < - Lower than
- > - Greater than
- = - Equal to
- <= - Lower than or equal to
- >= - Greater than or equal to
- precedences - Array of Integers
- operators - Array of Strings. The pairs
term-value are linked by the operator wich assumes the values AND, OR
and AND NOT
- pagesize - Integer. The number of records by
page
- pagenumber - Integer. The page number.
|
Output parameters |
- marcXML - Array of MarcXML objects
|
Sample code
|
public class SearchClient { public static void main(String[] args) { BufferedReader cLine = new BufferedReader(new InputStreamReader(System.in)); try { // create a new Web service SearchService service = new SearchServiceLocator(); Search port = service.getSearch(); String[] terms = new String[2]; String[] values = new String[2]; int[] precedences = {1, 1}; String[] operators = new String[2]; MarcXML[] records = new MarcXML[] {}; System.out.println("===================== Search Started ======================"); System.out.println("==========================================================="); System.out.println("Search Hints:"); System.out.println(" .Where to search: ti"); System.out.println(" .What to search: unimarc"); System.out.println(" .Operators: leave blank to begin search"); System.out.println(" .Operators: add logical operator for aditional options"); System.out.println("==========================================================="); System.out.print("Where to search [TI - Title | AU - Author | AS - Subject]: "); terms[0] = cLine.readLine().toUpperCase(); System.out.print("What to search: "); values[0] = cLine.readLine().toUpperCase(); System.out.print("Operators [AND | OR | AND NOT]: "); operators[0] = cLine.readLine().toUpperCase(); if (operators[0].length() > 0) { System.out.print("Where to search [TI - Title | AU - Author | AS - Subject]: "); terms[1] = cLine.readLine().toUpperCase(); System.out.print("What to search: "); values[1] = cLine.readLine().toUpperCase(); operators[1] = "OR"; } System.out.println("==========================================================="); System.out.println("Searching"); // invoke the service records = port.search(terms, values, precedences, operators, 10, 1); System.out.println("==========================================================="); System.out.println("FOUND " + records.length + " RECORD(S)"); System.out.println("==========================================================="); for (int idx = 0; idx < records.length; idx++) { MarcXML marc = records[idx]; String result = new String(); for (int loop = 0; loop < marc.getFields().length; loop++) result += marc.getFields()[loop].getTag() + ": " + marc.getFields()[loop].getContent() + System.getProperty("line.separator"); System.out.println("RECORD n.º " + (idx + 1) + ":"); System.out.println("==========================================================="); System.out.println(result); System.out.println("==========================================================="); } } catch(RemoteException e) { e.printStackTrace(); } catch(ServiceException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } }
|
SOAP Call
|
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <ns1:search xmlns:ns1="search"> <terms xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]" xmlns:ns2="http://sirius.bookmarc.pt/soap-ns"> <item>AU</item> <item>TI</item> </terms> <values xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]" xmlns:ns3="http://sirius.bookmarc.pt/soap-ns"> <item>Campos</item> <item>Unimarc</item> </values> <precedences xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:int[2]" xmlns:ns4="http://sirius.bookmarc.pt/soap-ns"> <item>1</item> <item>1</item> </precedences> <operators xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]" xmlns:ns5="http://sirius.bookmarc.pt/soap-ns"> <item>AND</item> <item>AND</item> </operators> <pagesize xsi:type="xsd:int">10</pagesize> <pagenumber xsi:type="xsd:int">1</pagenumber> </ns1:search> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
|
SOAP Answer
|
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> <s:session xmlns:s="http://sirius.bookmarc.pt/soap-ns"> <id>ADD615E0-C2C2-435C-81AC-6F85D1AC4516</id> <user/> </s:session> </SOAP-ENV:Header> <SOAP-ENV:Body> <methodns:searchResponse xmlns:methodns="search"> <searchResult xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="typens:MarcXML[1]" xmlns:marcns="urn:Search" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:typens="http://sirius.bookmarc.pt/soap-ns"> <record xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <leader xsi:type="typens:LeaderXML"> <content xsi:type="xsd:string"><![CDATA[00609nam 00205 4 45 ]]></content> <bibliographicLevel xsi:type="xsd:string"><![CDATA[m]]></bibliographicLevel> <cataloguingForm xsi:type="xsd:string"><![CDATA[4]]></cataloguingForm> <encodingLevel xsi:type="xsd:string"><![CDATA[ ]]></encodingLevel> <hierarchicalLevelCode xsi:type="xsd:string"><![CDATA[ ]]></hierarchicalLevelCode> <recordStatus xsi:type="xsd:string"><![CDATA[n]]></recordStatus> <recordType xsi:type="xsd:string"><![CDATA[a]]></recordType> </leader> <fields xsi:type="typens:ArrayOf_FieldXML" SOAP-ENC:arrayType="typens:FieldXML[15]" xmlns:marcns="urn:Marc"> <field> <tag xsi:type="xsd:string">001</tag> <content xsi:type="xsd:string"><![CDATA[0981]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">0</pos> <subfields xsi:nil="true"/> </field> <field> <tag xsi:type="xsd:string">005</tag> <content xsi:type="xsd:string"><![CDATA[990101000000.0]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">1</pos> <subfields xsi:nil="true"/> </field> <field> <tag xsi:type="xsd:string">010</tag> <content xsi:type="xsd:string"><![CDATA[^^Brochado]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">2</pos> <subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[2]"> <subfield> <tag xsi:type="xsd:string"/> <content xsi:type="xsd:string"><![CDATA[Brochado]]></content> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">1</pos> </subfield> <subfield> <tag xsi:type="xsd:string">B</tag> <content xsi:type="xsd:string"><![CDATA[rochado]]></content> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">2</pos> </subfield> </subfields> </field> <field> <tag xsi:type="xsd:string">095</tag> <content xsi:type="xsd:string"><![CDATA[^^PTBN00653291]]></content> <indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1> <indicator2 xsi:type="xsd:string"><![CDATA[]]></indicator2> <occ xsi:type="xsd:int">1</occ> <pos xsi:type="xsd:int">3</pos> <subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[2]">
<subfield>
<tag xsi:type="xsd:string"/>
<content xsi:type="xsd:string"><![CDATA[PTBN00653291]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">P</tag>
<content xsi:type="xsd:string"><![CDATA[TBN00653291]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">100</tag>
<content xsi:type="xsd:string"><![CDATA[ ^a19881117d1986 m a0pory0103 ba]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">4</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[19881117d1986 m a0pory0103 ba]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">101</tag>
<content xsi:type="xsd:string"><![CDATA[0 ^apor]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[0]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">5</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[por]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">102</tag>
<content xsi:type="xsd:string"><![CDATA[ ^aPT]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">6</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[PT]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">200</tag>
<content xsi:type="xsd:string">
<![CDATA[1 ^aUNIMARC^eManual de operações^fFernanda Maria Guedes de Campos, José Carlos Sottomayor]]>
</content>
<indicator1 xsi:type="xsd:string"><![CDATA[1]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">7</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[UNIMARC]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">e</tag>
<content xsi:type="xsd:string"><![CDATA[Manual de operações]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">f</tag>
<content xsi:type="xsd:string">
<![CDATA[Fernanda Maria Guedes de Campos, José Carlos Sottomayor]]>
</content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">210</tag>
<content xsi:type="xsd:string"><![CDATA[ ^aLisboa^cBiblioteca Nacional,^d1986]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">8</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[Lisboa]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">c</tag>
<content xsi:type="xsd:string"><![CDATA[Biblioteca Nacional,]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">d</tag>
<content xsi:type="xsd:string"><![CDATA[1986]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">215</tag>
<content xsi:type="xsd:string"><![CDATA[ ^a1 pasta (pag. var.)^d32 cm]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">9</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[2]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[1 pasta (pag. var.)]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">d</tag>
<content xsi:type="xsd:string"><![CDATA[32 cm]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">700</tag>
<content xsi:type="xsd:string"><![CDATA[ 1^aCampos,^bFernanda Maria Guedes de,^f1949-]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[1]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">10</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[Campos,]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">b</tag>
<content xsi:type="xsd:string"><![CDATA[Fernanda Maria Guedes de,]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">f</tag>
<content xsi:type="xsd:string"><![CDATA[1949-]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">701</tag>
<content xsi:type="xsd:string"><![CDATA[ 1^aSotomaior,^bJosé Carlos,^f1953-^4070]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[1]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">11</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[4]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[Sotomaior,]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">b</tag>
<content xsi:type="xsd:string"><![CDATA[José Carlos,]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">f</tag>
<content xsi:type="xsd:string"><![CDATA[1953-]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">4</tag>
<content xsi:type="xsd:string"><![CDATA[070]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">4</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">801</tag>
<content xsi:type="xsd:string"><![CDATA[ 0^aPT^bBN^gRPC]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[0]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">12</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[PT]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">b</tag>
<content xsi:type="xsd:string"><![CDATA[BN]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">g</tag>
<content xsi:type="xsd:string"><![CDATA[RPC]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">998</tag>
<content xsi:type="xsd:string"><![CDATA[ ^aMPA11-1]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">13</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[1]">
<subfield>
<tag xsi:type="xsd:string">a</tag>
<content xsi:type="xsd:string"><![CDATA[MPA11-1]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
</subfields>
</field>
<field>
<tag xsi:type="xsd:string">966</tag>
<content xsi:type="xsd:string"><![CDATA[ ^lMPAA^mMPAA^s1622/M?]]></content>
<indicator1 xsi:type="xsd:string"><![CDATA[ ]]></indicator1>
<indicator2 xsi:type="xsd:string"><![CDATA[ ]]></indicator2>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">14</pos>
<subfields xsi:type="typens:ArrayOf_SubfieldXML" SOAP-ENC:arrayType="typens:SubfieldXML[3]">
<subfield>
<tag xsi:type="xsd:string">l</tag>
<content xsi:type="xsd:string"><![CDATA[MPAA]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">1</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">m</tag>
<content xsi:type="xsd:string"><![CDATA[MPAA]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">2</pos>
</subfield>
<subfield>
<tag xsi:type="xsd:string">s</tag>
<content xsi:type="xsd:string"><![CDATA[1622/M?]]></content>
<occ xsi:type="xsd:int">1</occ>
<pos xsi:type="xsd:int">3</pos>
</subfield>
</subfields>
</field>
</fields>
</record>
</searchResult>
</methodns:searchResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
Back to the TVS model
document
|