chapter 9
TRANSCRIPT
![Page 1: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/1.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Chapter 9Web Services:
JAX-RPC, WSDL, XML Schema, and SOAP
WEB TECHNOLOGIESA COMPUTER SCIENCE PERSPECTIVE
JEFFREY C. JACKSON
![Page 2: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/2.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• A web application uses Web technologies to provide functionality to an end user
• A web service uses Web technologies to provide functionality to another software application
![Page 3: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/3.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Standard web services technologies:– Communication via SOAP XML vocabulary
documents over HTTP– Operations of web service defined by Web
Services Definition Language (WSDL) XML vocabulary
– Data within WSDL defined using XML Schema
![Page 4: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/4.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Higher-level API’s are often used to automatically generate web services client and server communication software– We will use the Java API for XML-based
Remote Procedure Call (JAX-RPC)– Microsoft .NET framework is one popular
alternative to JAX-RPC
![Page 5: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/5.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Web services conceptually are just specialized web applications:
ClientServer
(Java servlet)
HTTP request (SOAP body)
HTTP response (SOAP body)
![Page 6: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/6.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Body of web services request is analogous to calling a method
Operation name (like method name)
Input parameter valuesInput parameternames
![Page 7: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/7.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Body of web services response is analogous to value returned by a method
Return value data type
Returnvalue
![Page 8: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/8.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• WSDL defines web service– Operations– Parameters– Return values– Communication protocols
• Basically an API for the web service– Facilitates automated client/server software
generation
![Page 9: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/9.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Portions of NWS WSDL
Operation name
Inputparams
Returntype
Data typesdefined usingXML Schema
![Page 10: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/10.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Java Web Services Developer Pack (JWSDP) wscompile tool can implement a Java API from a WSDL
Classes and methodsgenerated by wscompile
This method automatically handles SOAP request and response
![Page 11: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/11.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Writing the server for a web service with JWSDP:– Write a Java interface defining the API– Implement the interface– JWSDP generates
• SOAP and communication handling classes• WSDL
![Page 12: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/12.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Example Java interface
![Page 13: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/13.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Concepts
• Example implementation
![Page 14: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/14.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Application: currency converter– Three operations:
•fromDollars•fromEuros•fromYen
– Input: value in specified currency– Output: object containing input value and
equivalent values in other two currencies
![Page 15: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/15.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
1. Write service endpoint interface• May need to write additional classes
representing data structures
2. Write class implementing the interface3. Compile classes4. Create configuration files and run
JWSDP tools to create web service5. Deploy web service to Tomcat
![Page 16: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/16.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Service endpoint interface– Must extend java.rmi.Remote– Every method must throw java.rmi.RemoteException
– Parameter/return value data types are restricted
– No public static final declarations (global constants)
![Page 17: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/17.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Allowable parameter/return value data types– Java primitives (int, boolean, etc.)– Primitive wrapper classes (Integer, etc.)– String, Date, Calendar, BigDecimal, BigInteger
– java.xml.namespace.QName, java.net.URI– Struct: class consisting entirely of public instance
variables– Array of any of the above
![Page 18: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/18.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Struct for currency converter app (data type for return values)
![Page 19: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/19.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Service endpoint interface
![Page 20: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/20.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
1. Write service endpoint interface• May need to write additional classes
representing data structures
2. Write class implementing the interface3. Compile classes4. Create configuration files and run
JWSDP tools to create web service5. Deploy web service to Tomcat
![Page 21: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/21.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Class CurConImpl contains methods, for example:
![Page 22: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/22.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
1. Write service endpoint interface• May need to write additional classes
representing data structures
2. Write class implementing the interface3. Compile classes4. Create configuration files and run
JWSDP tools to create web service5. Deploy web service to Tomcat
![Page 23: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/23.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Configuration file input to wscompile to create server
Namespacesused inWSDL(normally,unique URL’sat yourWeb site)
![Page 24: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/24.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Configuration file for web service
![Page 25: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/25.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Configuration file for web service
Likeservletin web.xml
Likeservlet-mappinginweb.xml
Context path
![Page 26: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/26.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Also need a minimal web.xml
![Page 27: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/27.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Run jar and wsdeploy to create a Web Archive (WAR) file converter.war– Name must match urlPatternBase value
![Page 28: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/28.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
1. Write service endpoint interface• May need to write additional classes
representing data structures
2. Write class implementing the interface3. Compile classes4. Create configuration files and run
JWSDP tools to create web service5. Deploy web service to Tomcat
![Page 29: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/29.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Just copy converter.war to Tomcat webapps directory– May need to use Manager app to deploy– Enter converter.war in “WAR or Directory
URL” text box
![Page 30: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/30.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Server
• Testing success:– Visit http://localhost:8080/converter/currency
![Page 31: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/31.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Goal: write a JSP-based client– Input: currency and value– Output: table of equivalent values
![Page 32: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/32.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Configuration file input to wscompile to create client
![Page 33: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/33.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Directory structure (wscompile generates content of classes and src)
![Page 34: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/34.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Starting point for writing a client (if the web service author does not explain how):– In the WSDL, find the name attribute of the service element
– Look in Java file with this name to see how to obtain a proxy object for the service
Data type of proxy object Method called to obtain object
![Page 35: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/35.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Obtaining the proxy object:– Java file consisting of service name followed
by _Impl defines a class implementing the proxy-generating interface
– Client code begins with method call on this class:
![Page 36: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/36.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Using the proxy object:
![Page 37: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/37.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Structs will be represented as JavaBeans classes, regardless of how they are defined on the server
![Page 38: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/38.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• Bean obtaining and calling proxy object:
![Page 39: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/39.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
JWSDP: Client
• JSP document using the bean:
Call to getExValues()
Call to getEuros()
![Page 40: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/40.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
WSDL Example
• Target namespace: namespace for names (e.g., of operations) defined by the WSDL
WSDLnamespaces XML Schema NS
Namespacesspecified inconfig files
![Page 41: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/41.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
WSDL Example
Defines structusing XMLSchema
Namespace fordata type definitions(ns2 in rest of document)
![Page 42: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/42.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
WSDL Example
Inputmessages(parameterlists)
Outputmessages(responsedata types)
Data type defined byXML Schema
![Page 43: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/43.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
WSDL Example
![Page 44: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/44.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
WSDL Example
Implement the operations using SOAP encoding ofdata structures and RPC (JWSDP defaults)
![Page 45: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/45.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
WSDL Example
Replaced by serverwhen WSDL is visited
![Page 46: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/46.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
WSDL Example
• Summary:– types uses XML Schema to define data
types– message elements define parameter lists and
return types using types and XML Schema– portType defines abstract API for operation’s using message’s
– binding specifies how message’s will be communicated and operation’s called
– service associates URL with binding
![Page 47: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/47.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• How do we send a Java double value to a web service using XML?– Is scientific notation allowed?– How large can the value be?– Etc.
• What if we want to send an object?– And what if the object contains references to
other objects?
![Page 48: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/48.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• XML Schema addresses such questions– Defines a number of simple data types,
including• Range of allowed values• How values are represented as strings
– Provides facilities for defining data structures in terms of simple types or other data structures
• Can also be used in place of XML DTD
![Page 49: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/49.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Built-in data types
– Types corresponding to Java primitive types: boolean, byte,int, double, etc.
• String representations much as Java– Exception: can use 0 for false, 1 for true
• No char; use string instead– XML DTD types (ID, CDATA, etc.)
Built-in type
![Page 50: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/50.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Built-in data types– integer and decimal (arbitrary precision)– dates, times, and related subtypes– URLs– XML namespace qualified names– binary data– some restricted forms of the above, e.g., nonNegativeInteger
![Page 51: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/51.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• XML Schema namespace defining built-in types is called the document namespace
– Standard prefix for this namespace is xsd
![Page 52: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/52.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Plus Java primitive types (int, etc.)
![Page 53: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/53.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Mapping from XML Schema data types to Java:– Primitives: one-for-one mapping– date, time, dateTime: map to Calendar– most others: map to String
![Page 54: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/54.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Elements in the document namespace can declare user-defined data types
• Two XML Schema data types:– Complex: requires markup to represent within
an XML document– Simple: can be represented as character data
![Page 55: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/55.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• User-defined data types are declared in the types element of a WSDL– Example: ExchangeValue
• In WSDL, user-defined types can be used– To define other data types within types
element– To specify data types of parameters and
return values in message elements
![Page 56: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/56.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
![Page 57: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/57.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• An XML schema is markup that – Is written according to the XML Schema
vocabulary– Defines an XML vocabulary
• A schema document is an XML document consisting entirely of an XML schema
• A document conforming with an XML schema vocabulary is call an instance of the schema
![Page 58: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/58.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Root element of the markup of an XML schema is schema
• Define data types with elements:– complexType– simpleType
• An XML schema can also define other vocabulary aspects (allowed elements, element content) that we won’t cover
![Page 59: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/59.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• One way to define simple types: restrict an existing simple base type
Base type
![Page 60: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/60.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Built-in types all have facets, that is, aspects that can be restricted– enumeration is a facet that applies to all built-in
types except boolean– length, minLength, maxLength apply to string-like
types (e.g., string, QName, anyURI)– minInclusive, maxInclusive, minExclusive, maxExclusive apply to numeric and time-oriented types
– totalDigits, fractionDigits apply to numeric types
![Page 61: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/61.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Restricting multiple facets:
![Page 62: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/62.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• pattern facet – applies to most types (except a few DTD)– specifies regular expression
![Page 63: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/63.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Other simple types– Union: combine two or more types
– Lists of values of simple type
![Page 64: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/64.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Complex type– Defined in an XML schema
– Used in an instance document
![Page 65: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/65.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Complex type can be used in placed of XML DTD content specification– sequence element is equivalent to , operator
in DTD
![Page 66: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/66.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
![Page 67: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/67.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
XML Schema
• Instance namespace
– Normally associated with prefix xsi• Used within instance documents to
– define null-valued elements
– define data types
![Page 68: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/68.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
SOAP
![Page 69: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/69.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
SOAP
![Page 70: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/70.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
SOAP
• Alternate form
![Page 71: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/71.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
SOAP
• SOAP encoding of arrays in WSDL
![Page 72: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/72.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
SOAP
• Array in SOAP document
![Page 73: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/73.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
SOAP
• If SOAP is sent via HTTP, request must include SOAPAction header field– Either empty or a URI– Can be used to pass operation rather than
embedding in body of message
![Page 74: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/74.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Technologies
• Other implementation of JAX-RPC and/or Java-based web services– Apache Axis– IBM WebSphere
• Microsoft support for web services: .NET• PHP also has web services tools
![Page 75: Chapter 9](https://reader035.vdocument.in/reader035/viewer/2022081413/547557b3b4af9f617a8b4741/html5/thumbnails/75.jpg)
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved. 0-13-185603-0
Web Services Technologies
• Universal Discovery, Description, and Integration (UDDI)– Technology for creating directories of web
services• Web Services-Interoperability
Organization (WS-I) Basic Profile– Specification of how web services should be
used to enhance interoperability– Must use XML Schema and literal encoding
(rather than SOAP encoding)