ITEC 4020A:Internet Client Server Systems Professor: Marin Litoiu Lecture 9&10 Web Service-XML © Marin Litoiu, York University, Canada
Web Services-Content Introduction to XML DTDs and XML Schema Web Services, SOAP, WSDL, VoiceXML 2
Unit 1. Introduction to XML Learning Objectives Understand how XML is different from HTML Understand the basic things that make up XML 3
What is XML? XML - EXtensible Markup Language It is a meta-markup language Let’s create our own tags Ex: John It is a standard for data structuring and interchange It is surrounded by TLAs: XSL, DTD, SAX, DOM… and FRLAs: XSLT, VXML, SOAP… Descends from SGML 4
5 XML is a Meta-Language (from w3c site)
6 XML is about Structured Data Unstructured data-natural language description: ”A company has a personnel and the personnel has one or more persons. Persons have name, address, etc…” Structured data: a tree personnel person name title givenfamily address street Mr. John Higgins zip M3C1H7 person Wall St. company
7 Why not HTML? HTML tags are concerned with rendering XML is concerned with the semantic of information XML is a meta-language, HTML can be seen as an instance of it (XHTML) HTML is one of the presentation formats for XML languages
8 Simple HTML document(1 of 2) Helm Brown Moon Light Toronto
9 Simple HTML document (2 of 2) An HTML browser knows how to render A human can understand each line, can a computer or application? How easy is to search for a piece of data?
10 Simple XML (PML?) Mr. Helm Brown Moon Light M3C1H7
11 Tags, Elements, CDATA Mr. Helm Brown Moon Light M3C1H7 Start tag Element End tag CDATA Markup
12 XML Document as a Tree person name titlefamilygiven address street Mr.HelmBrown zip M3C1H7 Moon Light parent children CDATA
13 XML Attributes Attributes are properties of the element Pairs of (name, value), within the element Values are between quotation marks …. Attributes
14 Well Formed Documents An XML document is well formed if obeys a set of rules 1.Tags cannot be inferred; they must be explicit. All starting tags must have corresponding ending tags. All ending tags must have corresponding starting tags 2.Empty tags need a Slash ( /) before the closing Greater Than (>) character: 3.All attribute values must be enclosed in either single or double quotation marks 4.Tags must nest correctly: 5.Tags are case sensitive and must match each other in every implementation
15 Namespaces in XML Distinguish between elements and attributes from different XMLs Qualified name = prefix:local Prefix is the Namespace Local identifies the particular element 1.xmlns:cmp= xmlns:lb= 2. Ms … As You Like It Qualified name
16 More in XML Documents Empty elements: no children Comments Processing Instructions Entities Further readings
17 XML for Presentation XML doc Presen- tation Voice XML WML HTML, PDF,PS
18 XML for Communication Appli- cation A Appli- cation A Appli- cation 1 Appli- cation 1 Appli- cation B Appli- cation B Appli- cation 2 Appli- cation 2 Transfor- mation 1 Transfor- mation 1 Transfor- mation 2 Transfor- mation 2 XML 1 XML 2 XML
19 XML for Web Services APP A APIAPI APP B APIAPI XML getAPI() XML RPC (SOAP)
20 Summary We learned: XML is a vehicle for representing structured data XML allows you to create your own language (data format) An XML document contains start tags, end tags, elements and attributes, CDATA Elements: parent, children, root element, document element
21 Exercise (10 min.) Write an XML document for the course you are attending: title: XML and Related Technologies description: basics of XML and related technologies instructor Name: Marin Litoiu Affiliation: CAS Participants Participant: name: John Trevis job: software programmer Participant Name: Big Boss Job: manager …..……. View the document with IExplorer
22 Quiz(1) Which statement(s) is(are) false?: 1.XML makes data interchange easy 2.XML is a standard 3.XML is a meta-language 4.An well-formed XML document has nested tags and is a tree 5.An empty element has no attributes True or false? 1.XML is a protocol, like HTTP, IIOP and RMI 2.You can have rendering tags in XML documents 3.Attributes for Elements are like parts to whole 4.XML isolates the presentation from content
23 Quiz(2) XML is not a language and has not recognized tags. Rather, it is a meta- language that allows you to define your own language 1.True 2. False Which of the following is not a rule for creating well-formed documents in XML? 1.All start tags must have corresponding ending tags 2.Empty tags need a Slash (/) before the closing Greater Than (>) character. 3.All attribute values must be enclosed in brackets 4.Tags must nest correctly 5.Tags are case sensitive and must match each other in every implementation.
24 Unit 2. DTDs Learning Objectives What is DTD Why we need DTD How to write a DTD
25 Document Type Definition(DTD) DTD defines the grammar for XML docs Tag names How elements can be nested If the elements may, must appear How often the elements appear Attributes of the elements Default values for the attributes All valid values for the attributes
26 Valid documents The XML document contains information about its dtd Exemple: A valid XML document follows the syntax defined in its dtd An XML parser will check the validity of the XML document against its dtd Any XML editor has an XML parser Eclipse has an XML Editor
27 XML Documents and DTD author.dtd author1.xmlauthor3.xml author2.xml author.class One editor One parser Many XMLs …….. One DTD
28 Simple person.dtd
29 Element definition ……. Element name Children Element declaration Element Type
30 Attributes in DTD DTD XML El. name Attr. name Attr type Default value
31 Empty Elements No children, no start or end tag DTD XML
32 Attributes Types CDATA “Eglinton East” NMTOKEN (name token): ID: unique Id within a document IDREF: a reference to an ID IDREFS: many IDREF ENUMERATION: (a|b|c|d) ENTITY: reference to an external unparsed entity ENTITIES: many ENTITY
33 ID and IDREF DTD: XML:
34 Default values for attributes #REQUIRED - a value MUST be provided #IMPLIED – optional value [#FIXED] “value”, if no value is provided, the “value” should be used
35 Child Element Occurrences “A man has zero or one wives, zero or more children and speaks one or more languages” ? zero or one times * zero or more times + one or more times , sequence | or- choice
36 Summary of Unit 2 We learned: DTD is the grammar for XML documents DTD defines: elements (parents and children), attributes, default and allowed values DTDs are agreed upon by a community Valid XML documents obey the structure of DTD
37 Exercise 1 Write an XML Document for person.dtd from slide 28 Validate the document with Internet Explorer make sure you specify the SYSTEM dtd You can use an XML Editor For example, Eclipse has editors for XML, DTD and XML Schema.
38 Quiz Which statement(s) is(are) false 1.DTD is a grammar for XML documents 2.IDREF is an attribute type and it means a reference to an attribute called “ID” 3. defines an element x with zero or more children elements y 4. defines an attribute z for the element y. z can have 1 or 2 characteristics, preferably is a valid comment 6. defines an empty element bag
39 Unit 3. XML Schema Learning Objectives Why we need XML Schema How to write an XML Schema When to use XML Schema
40 XML Schema DTD has few predefined types DTD syntax is different from XML syntax DTD cannot express certain constraints: “c occurs 3 to 5 times” XML Schema to the rescue Describes and constrains the content of XML Defines simple data types and ways to derive new simple or complex types Link: Namespace: xmlns:xsd='
XML Schema structure Schema element: the top level element ( as per XML definition) Element—defines the elements that will show up in your XML doc Simple type elements: simple elements derived from predefined elements in XML schema Complex type elements: complex data types ( sequence, union..) Example ………………….. © Marin Litoiu, York University, Canada
42 XML Schema uses XML Syntax DTD XML Schema XML attributes ??? XML Elements
43 All Built in Types
Simple types(1) Simple TypeExamples (delimited by commas)Notes stringThis is a string normalizedStringThis is a stringNL and CR are converted to spaces tokenThis is a stringTrailing and leading spaces are removed integer...-1, 0, 1,... integer is ·derived· from decimal by fixing the value of ·fractionDigits· to be 0and disallowing the trailing decimal point. ·derived·decimal·fractionDigits· positiveInteger1, 2,... negativeInteger... -2, -1 nonNegativeInteger0, 1, 2,... nonPositiveInteger... -2, -1, 0 long ,... -1, 0, 1, unsignedLong0, 1, int ,... -1, 0, 1, int is ·derived· from long by setting the value of ·maxInclusive· to be and ·minInclusive· to be ·derived·long·maxInclusive· minInclusive· unsignedInt0, 1, short-32768,... -1, 0, 1, unsignedShort0, 1, byte-128,...-1, 0, 1, unsignedByte0, 1,
Simple types(2) decimal-1.23, 0, 123.4, float -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN equivalent to single-precision 32-bit floating point, NaN is "not a number", INF-inifinite double -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN equivalent to double-precision 64-bit floating point booleantrue, false, 1, 0 durationP1Y2M3DT10H30M12.3S 1 year, 2 months, 3 days, 10 hours, 30 minutes, and 12.3 seconds dateTime T13:20: :00 May 31st 1999 at 1.20pm Eastern Standard Time which is 5 hours behind Co-Ordinated Universal Time date time13:20:00.000, 13:20: :00 gYear , g stands for Gregorian calendar gYearMonth the month of February 1999, regardless of the number of days, gMonth--05May, regardless of year, day gMonthDay every May 31st gDay---31the 31st day
Examples XML Schema XML Document John © Marin Litoiu, York University, Canada
Questions How do I specify this structure of the XML elements? John Smith See next slide… © Marin Litoiu, York University, Canada
48 Complex Types in XML Schema: Sequence Create once, use many times as a template High reusability, easy maintainability 1. Types Elements This how they will look in XML documents John Smith Bill Gates Is like “, “ in dtd
Validating XMLs and XML schemas Schema, in a file named name.xsd <schema xmlns=" targetNamespace=" xmlns:tns=" elementFormDefault="qualified"> XML file: references the file name.xsd <employeeName xmlns=" xmlns:xsi=" xsi:schemaLocation=" name.xsd "> Bill Gates © Marin Litoiu, York University, Canada
Quiz (10 min) 1. Write a valid xml document for this xml schema <schema xmlns=" targetNamespace=" xmlns:tns=" elementFormDefault="qualified"> 2. Write a simplified version of this XML schema (condense the types) 3. Write an XML document for the new schema © Marin Litoiu, York University, Canada
Complex Types: Choice ….. Only one of those: USAddress or CAAddress will show up in an instance XML document The address is followed by the items (items type is Items) © Marin Litoiu, York University, Canada
52 Anonymous Types Anonymous type does not have name, it is a private child of the element it types Anonymous type
53 Attributes Attributes have name, value, type They are children of the element ……….
54 Occurrence Constraints Occurrence Constraints for Children Elements minOccurs, maxOccurs Ex: Constraints for Attributes use, value Ex:
55 Derived Types-Pattern “Phone number has an optional country code, an area code of tree digits, a hyphen, and 7 digits” Use pattern
56 Derived Types-Interval “age is an integer greater that 10, less than 121”
57 Derived Types- Enumeration Enumerations are simple types
Derived types: Extension
59 DTD or XML Schema For reach type documents, with many types and constrains, use XML schemas Use DTD when Want a compact representation Not interested in semantic of the grammar, just in structure
60 Summary We learned: XML Schema is a replacement for DTD Has a syntax similar to XML Allows the user to Specialize by extension and restriction basic simple types Define his/her own complex types
Exercise (10 min). 1.For the po.xsd schema from write a sample xml document ( should be different from the one on web site)
62 Quiz True of false? 1.XML schemas are more compact that DTDs 2.To define complex types, one should use tag 3.Declaration is incorrect because is does not specify the name of the element y belongs to 4.“restriction” is a specialization mechanism in XML schema that constrains a “base” type 5.The user can only create complex types but cannot create simple types 6.“enumeration” is a simple type