XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a...

95
XML

Transcript of XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a...

Page 1: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML

Page 2: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). • XML tags identify the data and are used to store and organize the data, rather

than specifying how to display it like HTML tags, which are used to display the data. XML is not going to replace HTML in the near future, but it introduces new possibilities by adopting many successful features of HTML.

• There are three important characteristics of XML that make it useful in a variety of systems and solutions −

• XML is extensible − XML allows you to create your own self-descriptive tags, or language, that suits your application.

• XML carries the data, does not present it − XML allows you to store the data irrespective of how it will be presented.

• XML is a public standard − XML was developed by an organization called the World Wide Web Consortium (W3C) and is available as an open standard.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 3: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Usage

• XML can work behind the scene to simplify the creation of HTML

documents for large web sites. • XML can be used to exchange the information between organizations

and systems. • XML can be used for offloading and reloading of databases. • XML can be used to store and arrange the data, which can customize

your data handling needs. • XML can easily be merged with style sheets to create almost any desired

output. • Virtually, any type of data can be expressed as an XML document.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 4: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

What is Markup?

• XML is a markup language that defines set of rules for encoding

documents in a format that is both human-readable and machine-readable. So what exactly is a markup language? •Markup is information added to a document that enhances its meaning in

certain ways, in that it identifies the parts and how they relate to each other. More specifically, a markup language is a set of symbols that can be placed in the text of a document to demarcate and label the parts of that document.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 5: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• Following example shows how XML markup looks, when embedded in a piece of text −

<message>

<text> Hello, world! </text>

</message>

This snippet includes the markup symbols, or the tags such as <message>...</message> and <text>... </text>. The tags <message> and </message> mark the start and the end of the XML code fragment. The tags <text> and </text> surround the text Hello, world!.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 6: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Is XML a Programming Language?

A programming language consists of grammar rules and its own vocabulary which is used to create computer programs. These programs instruct the computer to perform specific tasks. XML does not qualify to be a programming language as it does not perform any computation or algorithms. It is usually stored in a simple text file and is processed by special software that is capable of interpreting XML.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 7: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Syntax

Following is a complete XML document − <?xml version = "1.0"?>

<contact-info>

<name>XYZ</name>

<company>ABC</company>

<phone>12345678</phone>

</contact-info>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 8: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

You can notice there are two kinds of information in the above example − •Markup, like <contact-info> • The text, or the character data, ABC and 12345678. • The following diagram depicts the syntax rules to write different types

of markup and text in an XML document. • Let us see each component of the diagram in detail.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 9: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Structure of XML

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 10: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Structure of XML

XML Declaration • The XML document can optionally have an XML declaration. It is written as

follows <?xml version = "1.0" encoding = "UTF-8’’ standalone = "no" ?>

Where version is the XML version and encoding specifies the character encoding used in the document. • The XML declaration is case sensitive and must begin with "<?xml>" where

"xml" is written in lower-case. • If document contains XML declaration, then it strictly needs to be the first

statement of the XML document. • The XML declaration strictly needs be the first statement in the XML

document.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 11: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 12: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Character-set Description

UTF-8 A character in UTF8 can be from 1 to 4 bytes long. UTF-8 can represent any

character in the Unicode standard. UTF-8 is backwards compatible with

ASCII. UTF-8 is the preferred encoding for e-mail and web pages

UTF-16 16-bit Unicode Transformation Format is a variable-length character

encoding for Unicode, capable of encoding the entire Unicode repertoire.

UTF-16 is used in major operating systems and environments, like Microsoft

Windows, Java and .NET.

HTML Unicode (UTF-8) Reference

• The Unicode Consortium develops the Unicode Standard.

• Their goal is to replace the existing character sets with its standard Unicode Transformation

Format (UTF).

• The Unicode Standard has become a success and is implemented in HTML, XML, Java,

JavaScript, E-mail, ASP, PHP, etc. The Unicode standard is also supported in many

operating systems and all modern browsers.

• The Unicode Consortium cooperates with the leading standards development organizations,

like ISO, W3C, and ECMA.

The Unicode Character Sets Unicode can be implemented by different character sets. The most commonly used encodings are UTF-8

and UTF-16:

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 13: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• If the XML declaration is present in the XML, it must be placed as the first line in the XML document.

• If the XML declaration is included, it must contain version number attribute.

• The Parameter names and values are case-sensitive. • The names are always in lower case. • The order of placing the parameters is important. The correct order

is: version, encoding and standalone. • Either single or double quotes may be used. • The XML declaration has no closing tag i.e. </?xml>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 14: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Tags and Elements

• An XML file is structured by several XML-elements, also called XML-nodes or

XML-tags. The names of XML-elements are enclosed in triangular brackets < > as shown below −

<element> Syntax Rules for Tags and Elements • Element Syntax − Each XML-element needs to be closed either with start or

with end elements as shown below − <element>....</element>

• Nesting of Elements − An XML-element can contain multiple XML-elements as its children, but the children elements must not overlap. i.e., an end tag of an element must have the same name as that of the most recent unmatched start tag.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 15: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

The Following example shows nested tags − <?xml version = "1.0"?>

<contact-info>

<company>ABC </company>

<contact-info>

Root Element − An XML document can have only one root element. For example, following is not a correct XML document, because both the x and y elements occur at the top level without a root element − <root>

<x>...</x>

<y>...</y>

</root>

Page 16: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Case Sensitivity − The names of XML-elements are case-sensitive. That means the name of the start and the end elements need to be exactly in the same case. • For example, <contact-info> is different from <Contact-Info>

XML Attributes • XML elements can have attributes, just like HTML. • Attributes are designed to contain data related to a specific element. • Attribute values must always be quoted. Either single or double quotes can be

used. • For a person's gender, the <person> element can be written like this:

<person gender="female"> or like this:

<person gender='female'>

Page 17: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Syntax Rules for XML Attributes

• Attribute names in XML (unlike HTML) are case sensitive. That is, HREFand href are considered two different XML attributes. • Same attribute cannot have two values in a syntax. The following

example shows incorrect syntax because the attribute b is specified twice- <a b = "x‚ c = "y‚ b = "z‚ >....</a>

Attribute names are defined without quotation marks, whereas attribute values must always appear in quotation marks. Following example demonstrates incorrect xml syntax- • <a b = x>....</a>In the above syntax, the attribute value is not defined in

quotation marks.

Page 18: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Elements vs. Attributes Take a look at these examples: <person gender="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person> •

<person> <gender>female</gender> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>

• In the first example gender is an attribute. In the last, gender is an element. Both examples provide the same information.

• There are no rules about when to use attributes or when to use elements in XML.

Page 19: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Attributes for Metadata

• Sometimes ID references are assigned to elements. These IDs can be used to identify XML elements in much the same way as the id attribute in HTML.

<messages> <note id="501"> <to>XYZ</to> <from>ABC</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 20: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<note id="502"> <to>ABC</to> <from>XYZ</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>

• The id attributes above are for identifying the different notes. It is not a part of the note itself. • metadata (data about data; a set of data that describes and gives

information about other data.) should be stored as attributes, and the data itself should be stored as elements

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 21: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Comments Syntax <!-------Your comment----->

A comment starts with <!-- and ends with -->. You can add textual notes as comments between the characters. You must not nest one comment inside the other.

• Following example demonstrates the use of comments in XML document − <?xml version = "1.0" encoding = "UTF-8" ?>

<!---Students grades are uploaded by months---->

<class_list>

<student>

<name>Tanmay</name>

<grade>A</grade>

</student>

</class_list>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 22: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Any text between <!-- and --> characters is considered as a comment. • XML Comments Rules

• Following rules should be followed for XML comments − • Comments cannot appear before XML declaration. • Comments may appear anywhere in a document. • Comments must not appear within attribute values. • Comments cannot be nested inside the other comments.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 23: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML DTD

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 24: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• A DTD is a Document Type Definition. • A DTD defines the structure and the legal elements and attributes of an XML

document. • With a DTD, independent groups of people can agree on a standard DTD for

interchanging data. • An application can use a DTD to verify that XML data is valid.

DTD Declaration:- <!DOCTYPE element DTD identifier

[

declaration1

Declaration2

........

]>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 25: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• The DTD starts with <!DOCTYPE delimiter. • An element tells the parser to parse the document from the specified root element. • DTD identifier is an identifier for the document type definition, which may be the

path to a file on the system or URL to a file on the internet. If the DTD is pointing to external path, it is called External Subset.

• The square brackets [ ] enclose an optional list of entity declarations called Internal Subset.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 26: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Example of writing INTERNAL DTD: <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>

The DTD above is interpreted like this: • !DOCTYPE note defines that the root element of the document is note • !ELEMENT note defines that the note element must contain the elements: "to,

from, heading, body" Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 27: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• !ELEMENT to defines the to element to be of type "#PCDATA" • !ELEMENT from defines the from element to be of type "#PCDATA" • !ELEMENT heading defines the heading element to be of type "#PCDATA" • !ELEMENT body defines the body element to be of type "#PCDATA“ • **Parsed Character Data (PCDATA)

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 28: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

The whole XML document will be written like this:

<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>

<note> <to>ABC</to> <from>XYZ</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 29: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

EXTERNAL DTD • In external DTD elements are declared outside the XML file. They are

accessed by specifying the system attributes which may be either the legal .dtd file or a valid URL. To refer it as external DTD, standalone attribute in the XML declaration must be set as no. This means, declaration includes information from the external source.

Syntax

<!DOCTYPE root-element SYSTEM "file-name">

where file-name is the file with .dtd extension.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 30: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Example <?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name> XYZ </name> <company> ABC </company> <phone> (011) 123-4567 </phone> </address> The content of the DTD file address.dtd is as shown − • <!ELEMENT address (name,company,phone)> • <!ELEMENT name (#PCDATA)> • <!ELEMENT company (#PCDATA)> • <!ELEMENT phone (#PCDATA)>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 31: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Declaring Minimum One Occurrence of an Element <!ELEMENT element-name (child-name+)> Example: <!ELEMENT message (note+)> The + sign in the example above declares that the child element “note" must occur one or more times inside the “message" element.

Declaring Zero or More Occurrences of an Element <!ELEMENT element-name (child-name*)> Example: <!ELEMENT message (note*)> The * sign in the example above declares that the child element "message" can occur zero or more times inside the "note" element.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 32: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Declaring Zero or One Occurrences of an Element <!ELEMENT element-name (child-name?)> Example: <!ELEMENT message (note?)> The ? sign in the example above declares that the child element "message" can occur zero or one time inside the "note" element.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 33: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML attribute Syntax:

<element-name attribute1 attribute2 >

....content..

< /element-name>

where attribute1 and attribute2 has the following form − name = "value" value has to be in double (" ") or single (' ') quotes. Here, attribute1 and attribute2 are unique attribute labels.

Attributes are used to add a unique label to an element, place the label in a category, add a Boolean flag, or otherwise associate it with some string of data.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 34: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• Following example demonstrates the use of attributes − • <?xml version = "1.0" encoding = "UTF-8"?> • <!DOCTYPE garden • [ • <!ELEMENT garden (plants)*> • <!ELEMENT plants (#PCDATA)> • <!ATTLIST plants category CDATA #REQUIRED> • ]>

• <garden> • <plants category = "flowers" > • <plants category = "shrubs"> • </plants> • </garden>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 35: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• Attributes are used to distinguish among elements of the same name, when you do not want to create a new element for every situation. Hence, the use of an attribute can add a little more detail in differentiating two or more similar elements. • In the above example, we have categorized the plants by including

attribute category and assigning different values to each of the elements. Hence, we have two categories of plants, one flowers and other color. Thus, we have two plant elements with different attributes. • You can also observe that we have declared this attribute at the

beginning of XML.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 36: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Namespaces

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 37: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Namespaces

• XML Namespaces provide a method to avoid element name conflicts. • In XML, element names are defined by the developer. This often results in a

conflict when trying to mix XML documents from different XML applications. • This XML carries HTML table information: • <table>

<tr> <td>Apples</td> <td>Bananas</td> </tr> </table>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 38: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• This XML carries information about a table (a piece of furniture): • <table>

<name>African Coffee Table</name> <width>80</width> <length>120</length> </table>

• If these XML fragments were added together, there would be a name conflict. Both contain a <table> element, but the elements have different content and meaning. • A user or an XML application will not know how to handle these

differences.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 39: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Solving the Name Conflict Using a Prefix

• Name conflicts in XML can easily be avoided using a name prefix. • This XML carries information about an HTML table, and a piece of furniture: • <h:table>

<h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 40: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Namespaces - The xmlns Attribute

•When using prefixes in XML, a namespace for the prefix must be defined. The namespace can be defined by an xmlns attribute in the start tag of an element. • The namespace declaration has the following syntax.

xmlns:prefix="URI"

<root> <h:table xmlns:h="http://www.examle1.com"> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 41: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

< f:table xmlns:f="https://www.example2.com"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root>

In the example above: • The xmlns attribute in the first <table> element gives the h: prefix a qualified

namespace. • The xmlns attribute in the second <table> element gives the f: prefix a qualified

namespace. • When a namespace is defined for an element, all child elements with the same

prefix are associated with the same namespace. Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 42: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Namespaces can also be declared in the

XML root element <root xmlns:h="http://www.example1.com" xmlns:f="https://www.example2.com"> <h:table> <h:tr> <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr> </h:table> <f:table> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 43: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Note: The namespace URI is not used by the parser to look up information. • The purpose of using an URI is to give the namespace a unique name. • However, companies often use the namespace as a pointer to a web page

containing namespace information. • A namespace name is a uniform resource identifier (URI). Typically, the URI

chosen for the namespace of a given XML vocabulary describes a resource under the control of the author or organization defining the vocabulary, such as a URL for the author's Web server. However, the namespace specification does not require nor suggest that the namespace URI be used to retrieve information; it is simply treated by an XML parser as a string. For example, the document at http://www.w3.org/1999/xhtml itself does not contain any code. It simply describes the XHTML namespace to human readers. Using a URI (such as "http://www.w3.org/1999/xhtml") to identify a namespace, rather than a simple string (such as "xhtml"), reduces the probability of different namespaces using duplicate identifiers.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 44: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XML Schema

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 45: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• An XML Schema describes the structure of an XML document. The XML Schema language is also referred to as XML Schema Definition (XSD).

XSD Example

<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> // declare namespace <xs:element name="note"> // root elements name <xs:complexType> //root element is complex because it has many child elements inside it <xs:sequence> // shows the sequence of child elements <xs:element name="to" type="xs:string"/>// describe element name & its data type

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/>

</xs:sequence> </xs:complexType></xs:element></xs:schema>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 46: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• The purpose of an XML Schema is to define the legal building blocks of an XML document:

• the elements and attributes that can appear in a document • the number of (and order of) child elements • data types for elements and attributes • default and fixed values for elements and attributes

• NOTE: The note element is a complex type because it contains other elements.

The other elements (to, from, heading, body) are simple types because they do not contain other elements.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 47: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSD Simple Elements

XML Schemas define the elements of your XML files. • A simple element is an XML element that contains only text. It cannot contain any

other elements or attributes. • What is a Simple Element?

• A simple element is an XML element that can contain only text. It cannot contain any other elements or attributes.

• However, the "only text" restriction is quite misleading. The text can be of many different types. It can be one of the types included in the XML Schema definition (boolean, string, date, etc.), or it can be a custom type that you can define yourself.

• You can also add restrictions (facets) to a data type in order to limit its content, or you can require the data to match a specific pattern.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 48: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Defining a Simple Element • The syntax for defining a simple element is:

<xs:element name="xxx" type="yyy"/>

• where xxx is the name of the element and yyy is the data type of the element. • XML Schema has a lot of built-in data types. The most common types are: • xs:string

• xs:decimal

• xs:integer

• xs:boolean

• xs:date

• xs:time

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 49: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• Example • Here are some XML elements: <lastname>abc</lastname> <age>12</age> <dateborn>1990-03-27</dateborn>

• And here are the corresponding simple element definitions: <xs:element name="lastname" type="xs:string"/> <xs:element name="age" type="xs:integer"/> <xs:element name="dateborn" type="xs:date"/>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 50: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSD Attributes

All attributes are declared as simple types.Simple elements cannot have attributes. If an element has attributes, it is considered to be of a complex type. But the attribute itself is always declared as a simple type.The syntax for defining an attribute is: <xs:attribute name="xxx" type="yyy"/>

where xxx is the name of the attribute and yyy specifies the data type of the attribute. • XML Schema has a lot of built-in data types. The most common types are: • xs:string

• xs:decimal

• xs:integer

• xs:boolean

• xs:date

• xs:time

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 51: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Example • Here is an XML element with an attribute: • <lastname lang="EN">Smith</lastname>

• And here is the corresponding attribute definition: • <xs:attribute name="lang" type="xs:string"/>

Default and Fixed Values for Attributes • Attributes may have a default value OR a fixed value specified. • A default value is automatically assigned to the attribute when no other value is

specified. • In the following example the default value is "EN": • <xs:attribute name="lang" type="xs:string" default="EN"/>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 52: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• A fixed value is also automatically assigned to the attribute, and you cannot specify another value.

• In the following example the fixed value is "EN": • <xs:attribute name="lang" type="xs:string" fixed="EN"/>

Optional and Required Attributes • Attributes are optional by default. To specify that the attribute is required, use the

"use" attribute: • <xs:attribute name="lang" type="xs:string" use="required"/>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 53: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Restrictions on Values

• The following example defines an element called "age" with a restriction. The

value of age cannot be lower than 0 or greater than 120: • <xs:element name="age">

<xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 54: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Restrictions on a Set of Values

• To limit the content of an XML element to a set of acceptable values, we would use the enumeration constraint.

• The example below defines an element called "car" with a restriction. The only acceptable values are: Audi, Golf, BMW:

• <xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 55: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Restrictions on a Series of Values

• To limit the content of an XML element to define a series of numbers or letters that

can be used, we would use the pattern constraint. • The example below defines an element called "letter" with a restriction. The only

acceptable value is ONE of the LOWERCASE letters from a to z: • <xs:element name="letter">

<xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-p]"/> </xs:restriction> </xs:simpleType> </xs:element>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 56: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSLT Introduction

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 57: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSLT Introduction

• XSL (eXtensible Stylesheet Language) is a styling language for XML. • XSLT stands for XSL Transformations. • This will help you how to use XSLT to transform XML documents into other

formats (like transforming XML into HTML). • XSLT is far more sophisticated than CSS. With XSLT you can add/remove

elements and attributes to or from the output file. You can also rearrange and sort elements, perform tests and make decisions about which elements to hide and display, and a lot more.

• XSLT uses XPath to find information in an XML document.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 58: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSL(T) Languages • XSLT is a language for transforming XML documents. It Started with XSL

• XSL stands for EXtensible Stylesheet Language. • The World Wide Web Consortium (W3C) started to develop XSL because there

was a need for an XML-based Stylesheet Language. CSS = Style Sheets for HTML

• HTML uses predefined tags. The meaning of, and how to display each tag is well understood.

• CSS is used to add styles to HTML elements.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 59: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSL = Style Sheets for XML

• XML does not use predefined tags, and therefore the meaning of each tag is not well understood.

For Suppose: A <table> element could indicate an HTML table, a piece of furniture, or something else but in XML using a <table> named element, the browsers do not know how to display it!

• So, XSL describes how the XML elements should be displayed. XSL - More Than a Style Sheet Language

XSL consists of four parts: • XSLT - a language for transforming XML documents • XPath - a language for navigating in XML documents • XSL-FO - a language for formatting XML documents (discontinued in 2013) • XQuery - a language for querying XML documents

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 60: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• With the CSS3 Paged Media Module, W3C has delivered a new standard for document formatting. So, since 2013, CSS3 is proposed as an XSL-FO replacement.

DECLARATION for XSLT:

• To get access to the XSLT elements, attributes and features we must declare the XSLT namespace at the top of the document.

• The xmlns:xsl="http://www.w3.org/1999/XSL/Transform" points to the official W3C XSLT namespace. If you use this namespace, you must also include the attribute version="1.0".

• The root element that declares the document to be an XSL style sheet is <xsl:stylesheet> or <xsl:transform>.

• Note: <xsl:stylesheet> and <xsl:transform> are completely synonymous and either can be used!

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 61: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

• The correct way to declare an XSL style sheet according to the W3C XSLT Recommendation is:

• <xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

or: • <xsl:transform version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 62: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Let us start with a Raw XML Document We want to transform the following XML document ("cdcatalog.xml") into XHTML: STEP 1 : Create a Simple XML Example:

<?xml version="1.0" encoding="UTF-8"?> <catalog> <books> <title> In Search of Lost Time</title> <author>Marcel Proust</author> <publisher>Penguin Classics Deluxe Edition</publisher> <price>7.13</price> <year>1913</year> </books>

…… </catalog>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 63: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

STEP 2: Now Create an XSL Style Sheet Then you create an XSL Style Sheet ("cdcatalog.xsl") with a transformation template: 1. <?xml version="1.0" encoding="UTF-8"?> // Declare XML 2. <xsl: stylesheet version="1.0‚xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> // create namespace for the XSL Style Sheet 3. <xsl:template match="/"> //<xsl:template> defines a way to reuse templates in order to generate the desired output for nodes of a particular type/context. 4. <html> 5. <body> 6. <h2>My BOOK Collection</h2> 7. <table border="1"> // START creating TABLE 8. <tr bgcolor="#9acd32">

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 64: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

9. <th>Title</th> 10.<th>Author</th> 11. </tr> 12. <xsl:for-each select="catalog/books"> //<xsl:for-each> tag applies a template repeatedly for each node. 13. <tr> 14. <td><xsl:value-of select="title"/></td> 15. <td><xsl:value-of select=‚author"/></td> 16. </tr>

17. </xsl:for-each>

18. </table> 19. </body> 20. </html>

21. </xsl:template> 22. </xsl:stylesheet>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 65: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Link the XSL Style Sheet to the XML Document

• Add the XSL style sheet reference to your XML document ("cdcatalog.xml"):

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> // by writing href, you can link xsl sheet to your xml <catalog> <books> <title> In Search of Lost Time</title> <author>Marcel Proust</author> <publisher>Penguin Classics Deluxe Edition</publisher> <price>7.13</price> <year>1913</year> </books></catalog>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 66: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSLT <xsl:template> Element

• An XSL style sheet consists of one or more set of rules that are called templates. • A template contains rules to apply when a specified node is matched. • The <xsl:template> element is used to build templates. • The match attribute is used to associate a template with an XML element. The

match attribute can also be used to define a template for the entire XML document. The value of the match attribute is an XPath expression (i.e. match="/" defines the whole document).

Example

• <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 67: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<xsl:template match="/"> <html> <body> <h2>My BOOKS Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Author</th> </tr> <tr> <td>.</td> <td>.</td> </tr> </table> </body> </html></xsl:template></xsl:stylesheet>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 68: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSLT <xsl:value-of> Element The <xsl:value-of> element is used to extract the value of a selected node.

It can be used to extract the value of an XML element and add it to the output stream of the transformation: EXAMPLE:-

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 69: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<h2>My BOOKS Collection</h2> <table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Author</th> </tr> <tr> <td> <xsl:value-of select="catalog/books/title"/> </td> <td> <xsl:value-of select="catalog/books/author"/> </td> </tr> </table> </body> </html> </xsl:template></xsl:stylesheet>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 70: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Note: The select attribute, in the example above, contains an XPath expression. An XPath expression works like navigating a file system; a forward slash (/) selects subdirectories. The result from the example above was a little disappointing; only one line of data was copied from the XML document to the output.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 71: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSLT <xsl:for-each> Element

• The <xsl:for-each> element allows you to do looping in XSLT. • The XSL <xsl:for-each> element can be used to select every XML element of a specified

node-set:

Example <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0‚xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> // Declare a namespace <xsl:template match="/"> <html> <body> <h2>My BOOKS Collection</h2>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 72: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<table border="1"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Author</th> </tr> <xsl:for-each select="catalog/books"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="author"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template></xsl:stylesheet>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 73: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Note: The value of the select attribute is an XPath expression. An XPath expression works like navigating a file system; where a forward slash (/) selects subdirectories.

Filtering the Output • We can also filter the output from the XML file by adding a criterion to the select

attribute in the <xsl:for-each> element. • <xsl:for-each select="catalog/books[author=‘xyz']"> • Legal filter operators are: • = (equal) • != (not equal) • &lt; less than • &gt; greater than

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 74: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSLT <xsl:sort> Element • The <xsl:sort> element is used to sort the output. • To sort the output, simply add an <xsl:sort> element inside the <xsl:for-each> element in

the XSL file:

Example <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0”xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h2>My CD Collection</h2> <table border="1">

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 75: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<tr bgcolor="#9acd32"> <th>Title</th> <th>Author</th> </tr> <xsl:for-each select="catalog/books"> <xsl:sort select="author"/> // Note: The select attribute indicates what XML element to sort on.

<tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="author"/></td> </tr> </xsl:for-each> </table>

</body> </html></xsl:template></xsl:stylesheet>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 76: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XSLT <xsl:if> Element

….

<html>

<body>

<h2>My CD Collection</h2>

<table border="1">

<tr bgcolor="#9acd32">

<th>Title</th>

<th>Author</th>

<th>Price</th>

</tr>

<xsl:for-each select="catalog/books">

<xsl:if test="price &gt; 10">

<tr>

<td><xsl:value-of select="title"/></td>

<td><xsl:value-of select="author"/></td>

<td><xsl:value-of select="price"/></td>

</tr>

</xsl:if>

</xsl:for-each>

</table>

</body>

</html> Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 77: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

The <xsl: choose> Element

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>

<body>

<h2>My CD Collection</h2>

<table border="1">

<tr bgcolor="#9acd32">

<th>Title</th>

<th>Artist</th>

</tr>

<xsl:for-each select="catalog/cd">

<tr>

<td><xsl:value-of select="title"/></td>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 78: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<xsl:choose>

<xsl:when test="price &gt; 10">

<td bgcolor="#ff00ff">

<xsl:value-of select="artist"/></td>

</xsl:when>

<xsl:otherwise>

<td bgcolor=“gray">

<td><xsl:value-of select="artist"/></td>

</xsl:otherwise>

</xsl:choose>

</tr>

</xsl:for-each>

</table>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 79: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XPath is a syntax for defining parts of an XML document

XPath uses path expressions to navigate in XML documents

XPath contains a library of standard functions

XPath is a major element in XSLT and in XQuery

XPath is a W3C recommendation

What is XPath?

XPath can be used to navigate through elements and

attributes in an XML document.

• XPath uses path expressions to select nodes or node-sets in an XML document. • These path expressions look very much like the expressions you see when you work

with a traditional computer file system. • XPath expressions can be used in JavaScript, Java, XML Schema, PHP, Python, C and

C++, and lots of other languages.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 80: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XPath Nodes

In XPath, there are seven kinds of nodes:

• element,

• attribute,

• text,

• namespace,

• processing-instruction,

• comment, and

• document nodes.

XML documents are treated as trees of nodes. The topmost element of the tree

is called the root element.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 81: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Look at the following XML document:

<?xml version="1.0" encoding="UTF-8"?>

<bookstore> // (root element node)

<book> // (parent node)

<title lang = “en”>Harry Potter</title>// (attribute node)

<author>J K. Rowling</author> / / (element node)

<year>2005</year> / / (element node)

<price>29.99</price> / / (element node)

</book>

</bookstore>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 82: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Relationship of Nodes

Parent

• Each element and attribute has one parent.

• In the previous example; the book element is the parent of the title, author, year, and price

Children

• Element nodes may have zero, one or more children.

• In the previous example; the title, author, year, and price elements are all children of the book element

Siblings

• Nodes that have the same parent.

• In the previous example; the title, author, year, and price elements are all siblings

Ancestors

• A node's parent, parent's parent, etc.

• In the previous example; the ancestors of the title element are the book element and the bookstore element

Descendants

• A node's children, children's children, etc.

• In the previous example; descendants of the bookstore element are the book, title, author, year, and price elements

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 83: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Selecting Nodes

XPath uses path expressions to select nodes in an XML document. The node is selected by following a path or steps. The most useful path expressions are listed below:

Expression Description

Nodename Selects all nodes with the name "nodename"

/ Selects from the root node

// Selects nodes in the document from the current node that match the

selection no matter where they are

. Selects the current node

.. Selects the parent of the current node

@ Selects attributes

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 84: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Path Expression Result

bookstore Selects all nodes with the name "bookstore"

/bookstore Selects the root element bookstoreNote: If the path starts with a slash (

/ ) it always represents an absolute path to an element!

bookstore/book Selects all book elements that are children of bookstore

//book Selects all book elements no matter where they are in the document

bookstore//book Selects all book elements that are descendant of the bookstore

element, no matter where they are under the bookstore element

//@lang Selects all attributes that are named lang

In the table below we have listed some path expressions and the result of the expressions:

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 85: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Predicates

Path Expression Result

/bookstore/book[1] Selects the first book element that is the child of the bookstore element.

/bookstore/book[last()] Selects the last book element that is the child of the bookstore element

/bookstore/book[last()-1] Selects the last but one book element that is the child of the bookstore

element

/bookstore/book[position()<3] Selects the first two book elements that are children of the bookstore

element

//title[@lang] Selects all the title elements that have an attribute named lang

//title[@lang='en'] Selects all the title elements that have a "lang" attribute with a value of

"en"

/bookstore/book[price>35.00] Selects all the book elements of the bookstore element that have a price

element with a value greater than 35.00

/bookstore/book[price>35.00]/title Selects all the title elements of the book elements of the bookstore

element that have a price element with a value greater than 35.00

• Predicates are used to find a specific node or a node that contains a specific value.

• Predicates are always embedded in square brackets.

• In the table below we have listed some path expressions with predicates and the result of

the expressions:

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 86: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XLink

XLink is used to create hyperlinks within XML documents

Any element in an XML document can behave as a link

With XLink, the links can be defined outside the linked files

XLink is a W3C Recommendation

What is XLink?

XLink is used to create hyperlinks in XML documents.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 87: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XLink Browser Support

• There is no browser support for XLink in XML documents.

• However, all major browsers support XLinks in SVG

What is SVG?

• SVG stands for Scalable Vector Graphics

• SVG is used to define vector-based graphics for the Web

• SVG defines the graphics in XML format

• Every element and every attribute in SVG files can be animated

• SVG is a W3C recommendation

• SVG integrates with other W3C standards such as the DOM and

XSL

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 88: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XLink Example The following XML document contains XLink features: <?xml version="1.0" encoding="UTF-8"?> <bookstore xmlns:xlink="http://www.w3.org/1999/xlink"> <book title="Harry Potter"> <book_description xlink:type="simple" xlink:href="/images/HPotter.gif" xlink:show="new"> As his fifth year at Hogwarts School of Witchcraft and Wizardry approaches, 15-year-old Harry Potter is....... </book_description> </book>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 89: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<book title="Lord of the Rings">

<book_description

xlink:type="simple"

xlink:href="/images/Lord_of_Rings.gif"

xlink:show="new">

A young hobbit, Frodo, who has found the One Ring that belongs to the Dark

Lord Sauron, begins his journey with eight companions to Mount Doom, the only

place where it can be destroyed........

</book_description>

</book>

</bookstore>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 90: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Example explained:

• The XLink namespace is declared at the top of the document

(xmlns:xlink="http://www.w3.org/1999/xlink")

• The xlink:type="simple" creates a simple "HTML-like" link

• The xlink:href attribute specifies the URL to link to (in this case - an image)

• The xlink:show="new" specifies that the link should open in a new window

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 91: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XLink Attribute Reference

Attribute Value Description

xlink:actuate onLoad

onRequest

other

none

Defines when the linked resource is read and shown:

•onLoad - the resource should be loaded and shown

when the document loads

•onRequest - the resource is not read or shown before

the link is clicked

xlink:href URL Specifies the URL to link to

xlink:show embed

new

replace

other

none

Specifies where to open the link. Default is "replace"

xlink:type simple

extended

locator

arc

resource

title

none

Specifies the type of link

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 92: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

XPointer

•XPointer allows links to point to specific parts of an XML document

•XPointer uses XPath expressions to navigate in the XML document

•XPointer is a W3C Recommendation

XPointer Browser Support

There is no browser support for XPointer.

But XPointer is used in other XML languages.

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 93: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<?xml version="1.0" encoding="UTF-8"?>

<dog_breeds>

<dog breed="Rottweiler" id="Rottweiler">

<picture url="https://dog.com/rottweiler.gif" />

<history>The Rottweiler's ancestors were probably Roman drover dogs.....

</history>

<temperament>Confident, bold, alert and imposing, the Rottweiler

is a popular choice for its ability to protect....</temperament>

</dog>

<dog breed="FCRetriever" id="FCRetriever">

<picture url="https://dog.com/fcretriever.gif" />

<history>One of the earliest uses of retrieving dogs was to help fishermen

retrieve fish from the water....</history>

<temperament>The flat-coated retriever is a sweet, exuberant, lively dog

that loves to play and retrieve....</temperament>

</dog>

</dog_breeds>

Example

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 94: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

<?xml version="1.0" encoding="UTF-8"?>

<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">

<mydog>

<description>Anton is my favorite dog. He has won a lot of..</description>

<fact

xlink:type="simple"

xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">

Fact about Rottweiler </fact>

</mydog>

<mydog>

<description>Pluto is the sweetest dog on earth......</description>

<fact

xlink:type="simple"

xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">

Fact about flat-coated Retriever </fact>

</mydog>

</mydogs>

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur

Page 95: XML - kaverikar.files.wordpress.com · XML stands for Extensible Markup Language and is a text-based markup language derived from Standard Generalized Markup Language (SGML). •XML

Note that the XML document above uses id attributes on each element! So, instead of linking to the entire document (as with XLink), XPointer allows you to link to specific parts of the document. To link to a specific part of a page,

• add a number sign (#) and • an XPointer expression after the URL in the xlink:href attribute,

like this: xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))".

The expression refers to the element in the target document, with the id value of "Rottweiler".

Kaveri Kar (Assistant Professor) ||SSIPMT, Raipur