Mastering XML for SOA and Web Services

In this course you will learn fundamentals necessary to use XML in the data-driven applications in SOA and Web Services. Through lecture and hands-on lab exercises, you will learn the essentials of data interoperability using XML, write well-formed XML documents, enforce document validity, use XSLT and stylesheets to transform XML documents, and get an introduction to XML programming options. You will also learn best practices for how to evolve XML syntax and structure over time and how XML related to some of the fundamental technologies used by Web Services.

Course Outline



1. Getting Started with XML
XML Overview
Data and Document Structure
An Employee Document
Elements
First XML
What is XML ?
Why XML?
Another Example of XML
Well-formed vs. Valid XML Document
Enforcing Validity DTDs
Presentation Style
XSL and XSLT

2. XML Syntax
XML Elements
Empty and Non-Empty Elements
XML Naming Rules
Rules for XML Tags
Nesting and Hierarchy of XML Elements
Simple XML
XML Declaration
Sections of an XML Document
XML Elements
Tag Attributes
Comment Tags
CDATA Tags
Entity References
Character References
Processing Instructions
Is the XML Declaration a Processing Instruction ?
Well-formed vs. Valid XML Document
Is this document well-formed?
Namespaces
Namespace URLS
Namespaces
Using XML Namespaces
Binary Data In XML
Encoding Binary Data
Encoding Binary Data in XML

3. Basic XML Schemas
What is XML Schema ?
Goals of Schema
Converting DTDs to Schema
Recall: Namespaces
The equivalent schema
Sample instance document
Documents Needed
XML Schema Namespaces
Link Documents to Schemas
Inline element declarations
XSchema Data Types
XSchema Type Definitions
XSchema Simple Data Types
Primitive Data Types
Simple Types
Facet Restrictions on Element Content
Using the Facet
More Samples
Define Simple Element Type
Element Declaration
Element Occurrence Indicators
Complex Type
Attribute Declaration
Attribute Declarations
Occurrence of Attributes
Value Constraints on Attributes
Sequence Element
Element Choices
Express any order
Annotations

4. XPath Fundamentals
XPath
Tree Structure
Example
XPath Examples
XPath Core Definitions
Wildcards and Multiple Matches
Other Node Operators
Path Operators
Predicates
Predicate Relationships and Attributes
More Predicate Examples
Predicates Chaining and Indexing
XPath Expressions
XPath Numbers
XPath Strings
XPath Booleans
XPath Functions
String Functions
Boolean Functions
Number Functions
XSLT and XPath
XPath and Content Based Routing
Summary

5. Introduction to XQuery
What Is XQuery?
XQuery Uses
XQuery Properties
XPath and XSLT
XQuery Flow
XQuery Participants
Sample XQuery Source
Simple Example Queries
FLWOR Queries
F-WOR Explained
L Explained
Wrapping Output
Converting Output
Inline Output
Data Rendering
Functions
Joins
Join Example
Summary

6. Introduction to XSL
Topics
Formatting XML Documents
XSL
Three Parts of XSL
XSLT XSL Transformation
<xsl:stylesheet>
<?xml-stylesheet>
<xsl:template>
<xsl:value-of>
Navigating with XPath
Navigating With XPath
<xsl:for-each>
<xsl:if>
XPath Boolean expressions
XPath Boolean Expressions
<xsl:choose>
<xsl:apply-templates>
<xsl:sort>
<xsl:sort>
The Music Collection Example Introduction
The Music Collection Example Sample XML file
The Music Collection Example Retrieving owner details
The Music Collection Example Retrieving the core data
The Music Collection Example Retrieving the core data
The Music Collection Example Current Output
The Music Collection Example Retrieving canadianContent data
The Music Collection Example Retrieving canadianContent data
The Music Collection Example Current Output
The Music Collection Example Retrieving media data
The Music Collection Example Retrieving media data
The Music Collection Example Retrieving media data
The Music Collection Example Retrieving media data
The Music Collection Example Final Output
Formatting XML Documents

7. XML in Applications
Topics
Needs for Using XML in Applications
Basic Functionalities Required for XML Applications
XML Parser
Obtaining a Parser
SAX
How it Works
DOM
DOM Parsing
Applying XML Across System Boundaries
Using XML on the Client Side
Using XML on the Server Side
Using XML in Non-Networked Systems
Using XML in RDBMS
The J2EE Blueprint
A Typical Architecture Using XML in J2EE Applications
Using XML in Applets
Using XML Parser in Applets
Using XML in Servlets
Creating XML Middleware for Accessing Databases
Transforming RDBMS Data to XML Data
Transforming XML Data to RDBMS Data

8. Data Modeling With XML Schema
Data Modeling
Sample Modeling
Capturing Information
Modeling Techniques
Modeling Properties
Naming Guidelines
Naming Rules
Name Separators
Vocabulary Differences
Creating A Schema
Schema Types
Available Schema Types
Schema Data Type Facets
Data Type Facets
Databases and Schema Data Types
Modeling For Reuse

9. Schema Configuration Management
Objectives
Evolving Schema
Management Techniques
Internal Techniques
Schema Version Attribute
Adding An Attribute
Namespace Change
File-Based Mechanisms
External
Which To Use?
Summary

10.Parsing Strategies
Web 1.0 vs Web 2.0
Asynchronous Performance
Performance Best Practices

11. Introduction to Web Services

Objectives
A Conceptual Look at Services
Defining Services
Service Communication Analogy
Three Key Service Questions
Connecting the Dots
SOA Runtime Implementation
What is a Web Service?
Enterprise Assets as Services
Typical Development Workflow
Advantages of Web Services
Web Service Business Models
Example: Internal System Integration
Example: Business Process Externalization
Binding via SOAP
SOAP in Protocol Stack
SOAP Structure
SOAP Message Architecture
Applying SOAP
Interface via WSDL
WSDL Structure
Applying WSDL
Locating a Service
UDDI Overview
UDDI Terminology
UDDI Structure
Applying UDDI
WS-I Overview
WS-I Deliverables
Summary

12. Web services Description Language (WSDL)
Objectives
WSDL Overview
WSDL Document Tags
WSDL Namespaces
Sample WSDL Document Structure
<definitions>
<import>
<types>
<message>
<portType>
<operation>
One-way <operation>
Request-Response <operation>
Solicit-Response <operation>
Notification <operation>
Modeling Simple Operation
Modeling Complex Operation
Modeling Complex Message
<binding>
More on <binding>
<binding> Syntax
SOAP Binding Example
<service> and <port>
More on <port>
WSDL SOAP Binding Extensions
soap:binding
soap:operation
RPC or Document Style?
WSDL API for Java
Summary

13. Simple Object Access Protocol (SOAP)
Objectives
SOAP Overview
SOAP in Protocol Stack
SOAP Components
SOAP HTTP Request Example
SOAP HTTP Response Example
Message Envelope
The Header Element
Header Attributes
SOAP Body
SOAP Fault
Communication Style
RPC/Encoded Style
RPC/Literal Style
Enabling RPC Styles
Document/Literal Style
Document/Literal Wrapped Style
Details of the Wrapped Style
Enabling Document Literal Style
Summary

Audience

Anyone who needs an introduction to XML, including application developers, Web developers, XML document authors, and webmasters.