XML | DTD | XPath | X Query | X Schema (M2.2)

XML

XML stands for Extensible Markup Language. It is a text-based markup language derived from Standard Generalized Markup Language (SGML).

A mark up language is a modern system for highlight or underline a document.

Students often underline or highlight a passage to revise easily, same in the sense of modern mark up language highlighting or underlining is replaced by tags.

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.

    Why XML ?

    Platform Independent and Language Independent: The main benefit of XML is that you can use it to take data from a program like Microsoft SQL, convert it into XML then share that XML with other programs and platforms. You can communicate between two platforms which are generally very difficult.

    The main thing which makes XML truly powerful is its international acceptance. Many corporation use XML interfaces for databases, programming, office application mobile phones and more. It is due to its platform independent feature.

    Advantages of XML

    Simplicity
    Open standard and platform/vendor-independent
    Extensibility
    Reuse
    Separation of content and presentation
    Improved load balancing
    Support for the integration of data from multiple sources
    Ability to describe data from a wide variety of applications
    More advanced search en
    gines
    New opportunities

    1) XML separates data from HTML

    If you need to display dynamic data in your HTML document, it will take a lot of work to edit the HTML each time the data changes.

    With XML, data can be stored in separate XML files. This way you can focus on using HTML/CSS for display and layout, and be sure that changes in the underlying data will not require any changes to the HTML.

    With a few lines of JavaScript code, you can read an external XML file and update the data content of your web page.

    2) XML simplifies data sharing

    In the real world, computer systems and databases contain data in incompatible formats.

    XML data is stored in plain text format. This provides a software- and hardware-independent way of storing data.

    This makes it much easier to create data that can be shared by different applications.

    3) XML simplifies data transport

    One of the most time-consuming challenges for developers is to exchange data between incompatible systems over the Internet.

    Exchanging data as XML greatly reduces this complexity, since the data can be read by different incompatible applications.

    4) XML simplifies Platform change

    Upgrading to new systems (hardware or software platforms), is always time consuming. Large amounts of data must be converted and incompatible data is often lost.

    XML data is stored in text format. This makes it easier to expand or upgrade to new operating systems, new applications, or new browsers, without losing data.

    5) XML increases data availability

    Different applications can access your data, not only in HTML pages, but also from XML data sources.

    With XML, your data can be available to all kinds of "reading machines" (Handheld computers, voice machines, news feeds, etc), and make it more available for blind people, or people with other disabilities.

    6) XML can be used to create new internet languages

    A lot of new Internet languages are created with XML.

    Here are some examples:

  • XHTML
  • WSDL for describing available web services
  • WAP and WML as markup languages for handheld devices
  • RSS languages for news feeds
  • RDF and OWL for describing resources and ontology
  • SMIL for describing multimedia for the web
  • XML Example

    XML documents create a hierarchical structure looks like a tree so it is known as XML Tree that starts at "the root" and branches to "the leaves".

        
    <bookstore>
        <book category="COOKING">
            <title lang="en">Everyday Italian</title>
            <author>Giada De Laurentiis</author>
            <year>2005</year>
            <price>30.00</price>
        </book>
        <book category="CHILDREN">
            <title lang="en">Harry Potter</title>
            <author>J K. Rowling</author>
            <year>2005</year>
            <price>29.99</price>
        </book>
        <book category="WEB">
            <title lang="en">Learning XML</title>
            <author>Erik T. Ray</author>
            <year>2003</year>
            <price>39.95</price>
        </book>
    </bookstore> 

    The root element in the example is <bookstore>. All elements in the document are contained within <bookstore>.

    The <book> element has 4 children: <title>,< author>, <year> and <price>.

    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.

  • XML stands for eXtensible Markup Language
  • XML is a markup language much like HTML
  • XML was designed to store and transport data
  • XML was designed to be self-descriptive
  • XML is a W3C Recommendation
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

 the XML above does not DO anything. XML is just information wrapped in tags.

Many computer systems contain data in incompatible formats. Exchanging data between incompatible systems (or upgraded systems) is a time-consuming task for web developers. Large amounts of data must be converted, and incompatible data is often lost.

XML stores data in plain text format. This provides a software- and hardware-independent way of storing, transporting, and sharing data.

XML also makes it easier to expand or upgrade to new operating systems, new applications, or new browsers, without losing data.

With XML, data can be available to all kinds of "reading machines" like people, computers, voice machines, news feeds, etc.

In XML, data can have an elaborate and intricate (very complicated or detailed.) structure that is significantly richer and more complex than a table of rows and columns.

 DTD

  • DTD stands for Document Type Definition.
  • DTD defines the structure and the legal elements and attributes of an XML document.
  • Before proceeding with XML DTD, you must check the validation. 
  • An XML document is called "well-formed" if it contains the correct syntax.
  • A well-formed and valid XML document is one which have been validated against DTD.

Example

Note.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"
  • !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"

 

XPath  

XPATH is an XML path used for navigation through the HTML structure of the page.   

It is a syntax or language for finding any element on a web page using XML path expression.   

XPath can be used for both HTML and XML documents to find the location of any element on a webpage using HTML DOM structure.

Difference between “/” and “//” in XPath

There are mainly three differences between single slash and double slash.

1. Single slash is used to create absolute XPath whereas Double slash is used to create relative XPath.

2. Single slash selects an element from the root node. For example, /html will select the root HTML element.

Double slash search element from anywhere on the web page. For example, //table will select all the table elements from anywhere on the web page.

3. Single slash (/) defines ancestor and descendant relationships if used in the middle. For example, //div/table returns the div which contains a table object.

If double slash (//) is used in middle, it defines a descendant relationship. For example, /html//title returns title element which is descendant of html element.

FLWOR

FLWOR is pronounced "flower", and is an acronym for the keywords used to introduce each clause (for, let, where, order by, and return).

for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title

With FLWOR you can sort the result:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title

The for clause selects all book elements under the bookstore element into a variable called $x.

The where clause selects only book elements with a price element with a value greater than 30.

The order by clause defines the sort-order. Will be sort by the title element.

The return clause specifies what should be returned. Here it returns the title elements.

FLWOR expressions are frequently used to combine related information. The possible combinations are generated by using variables in the for clause and using a where clause to filter out combinations that are not useful. This is known as a "join".

XML SCHEMA

  • The XML Schema language is also referred to as XML Schema Definition (XSD).
  • An XML Schema describes the structure of an XML document, just like a DTD.
  • An XML document with correct syntax is called "Well Formed".
  • An XML document validated against an XML Schema is both "Well Formed" and "Valid".
  • The purpose of an XML Schema is to define the legal building blocks of an XML document like:
  • 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

XSD Example

<xs:element name="note">

<xs:complexType>
  <xs:sequence>
    <xs:element name="to" type="xs:string"/>
    <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>

XML Schemas are More Powerful than DTD

  • XML Schemas are written in XML
  • XML Schemas are extensible to additions
  • XML Schemas support data types
  • XML Schemas support namespaces

Why Use an XML Schema?

With XML Schema, your XML files can carry a description of its own format.

With XML Schema, independent groups of people can agree on a standard for interchanging data.

With XML Schema, you can verify data.

XML Schemas Support Data Types

One of the greatest strengths of XML Schemas is the support for data types:

  • It is easier to describe document content
  • It is easier to define restrictions on data
  • It is easier to validate the correctness of data
  • It is easier to convert data between different data types
XML Schemas use XML Syntax

Another great strength about XML Schemas is that they are written in XML:

  • You don't have to learn a new language
  • You can use your XML editor to edit your Schema files
  • You can use your XML parser to parse your Schema files
  • You can manipulate your Schemas with the XML DOM
  • You can transform your Schemas with XSLT

 

XQuery

XQuery is to XML what SQL is to databases.

XQuery is designed to query XML data.


XQuery
  • XQuery is the language for querying XML data
  • XQuery for XML is like SQL for databases
  • XQuery is built on XPath expressions
  • XQuery is supported by all major databases
  • XQuery is a W3C Recommendation

 

X Query Example 

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title

 

XQuery is About Querying XML

XQuery is a language for finding and extracting elements and attributes from XML documents.

Here is an example of what XQuery could solve:

"Select all CD records with a price less than $10 from the CD collection stored in cd_catalog.xml"

XQuery can be used to:
  • Extract information to use in a Web Service
  • Generate summary reports
  • Transform XML data to XHTML
  • Search Web documents for relevant information
XQuery is compatible with several W3C standards, such as XML, Namespaces, XSLT, XPath, and XML Schema.

XPath

XPath is a major element in the XSLT standard.

XPath can be used to navigate through elements and attributes in an XML document.

XPath
  • XPath stands for XML Path Language
  • XPath uses "path like" syntax to identify and navigate nodes in an XML document
  • XPath contains over 200 built-in functions
  • XPath is a major element in the XSLT standard
  • XPath is a W3C recommendation
XPath Path Expressions

XPath uses path expressions to select nodes or node-sets in an XML document.

These path expressions look very much like the path expressions you use with traditional computer file systems:

 

XPath includes over 200 built-in functions.

There are functions for string values, numeric values, booleans, date and time comparison, node manipulation, sequence manipulation, and much more.

Today XPath expressions can also be used in JavaScript, Java, XML Schema, PHP, Python, C and C++, and lots of other languages.

XPath is Used in XSLT

XPath is a major element in the XSLT standard.

With XPath knowledge you will be able to take great advantage of your XSLT knowledge.


 

https://www.javatpoint.com/xquery-tutorial

 

No comments:

Post a Comment

Monk and Inversions

using System; public class Solution { public static void Main () { int T = Convert . ToInt32 ( Console . ReadLine...