SlideShare a Scribd company logo
Chapter'12
~'-:~~ :;:I I ~
dJ
;..,,1.,0ltt ·"'
UnitV
C:vrXML
r-~ I
Chapter Outline
12.1 Introduction: XML: Extensible Markup Language
12.2 XML Basics
12.3 The XML Classes
12.4 XML Validation
12.5 XML Display and Transforms
12.6 Questions
~ , -
L::~ ~l J~~~!_!J:._~~J/t:_ )
=It is a very widely used format for exchanging data, mainly because it's easy readable for
both humans and machines.
=XML is designed as an all-purpose format for organizing data.
=Amarkup language is used to provide information about a document.
=Tags are added to the document to provide the extra information.
=HTML tags tell abrowser how to display the document.
=XML tags give areader some idea what some of the data means.
_;_--~->~~.t ,,r,~ - .-. :/Sffl·.
---__,;::;...;;:....,;.;.£..,;:=~............-..;......._...:,.
When creating your own XML document, you need to remember only a few rules:
=XML documents must start with an XML declaration like <?xml version="1.0"?>.
=XML elements are composed of a start tag (like <Name>) and an end tag (like </Name>).
=Content is placed between the start and end tags. If you include a start tag, you must also
include a corresponding end tag.
= Whitespace between elements is ignored.
You can use only valid characters in the content for an element. You can't enter special
characters, such as the angle brackets (<>) and the ampersand (&), as content.
XML elements are case sensitive, so <ID> and <id> are completely different elements.
XML 317
:> All elements must be nested in a root element
:> Every element must be fully enclosed. In other words, when you open a subelement, you
need to close it before you can close the parent.
Example
<?xml version="1.0" encoding="utf-S" ?>
<address>
<name>
<first>Haider</first>
<last>Zaidi</last>
</name>
<email>haiderzaidi20@gmail.com</email>
<phone>8898253962</phone>
<birthday>
<year>1988</year>
<month>04</month>
<day>03</day>
</birthday>
</address>
XML File Tree
year day
:> .NET provides a rich set of classes for XML manipulation in several namespaces that start
with System.Xml.
:> NET provides seven namespace:
using System.Xml;
using System.Xml.Scherna;
using System.Xml.Linq;
/
"--
)
)
1n9
318
using System.Xml.Resolvers;
,, using System.Xml.Serialization;
using System.Xml.XPath;
using System.Xml.Xsl;
The SystemXml namespace contains major XML classes. This namespace contai·ns tnan
classes to read and write XML documents. Y
12.3.1 The XML TextWriter
One of the simplest ways to create or read any XML document is to use the ba .
XmITextWriter and XmlTextReader classes. sic
These classes work like their StreamWriter and StreamReader relatives, except th t th
write and read XML documents instead ofordinary text files. . a ey
Example: The following code creates an xmI file with the name Employee.
using System;
using System.Text;
using System.Xml;
namespace ConsoleApplication3
{
class Program
static void Main(stringO args)
{
XmlWriter xmlWriter =XmlWriter.Create("Employee.xml");
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Employees");
xmlWriter.WriteStartElement("Employee");
xmlWriter.WriteAttributeString("age", "29");
xmlWriter.WriteString("Haider Zaidi");
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("Employee");
xmlWriter.WriteAttributeString("age", "48");
xmlWriter.WriteString("Arif Patel");
xmlWriter.WriteEndDocument();
..,
l
)(r/lL 319
lJl)IWriter.WriteStartElement: Writes out a start tag with the specified local name.
xmtWriter.WriteElementString: Writes an element containing a string value.
lllllWriter.WriteEndDocument: Closes any open elements or attributes and puts the writer
k I
.0 the Start state.
bac
lJl)IWriter.WriteAttributeString: This method writes out the attribute with a user defined
espace prefix and associates it with the given namespace.
naJJl
12.3.2 XMLTextReader
:> With Xm!TextReader we parse XML data. This type acts upon a string containing XML
markup. We use the XmlTextReader constructor and develop a custom parser for XML data.
This is an efficient approach to XML parsing.
:> The Xm!Reader class is an abstract bases classes and contains methods and properties to
read adocument. The Read method reads a node in the stream.
:> I'm using books.xml to read and display its data through XmlTextReader. This file comes
with VS.NET samples (https://msdn.microsoftcom/en-
us/Iibrary/ms762271(v=vs.85).aspx ).
Example
using System;
using System.Text;
using System.Xml;
namespace ConsoleApplication1
class Program
static void args)
{// Create an isntance of XmlTextReader and call Read method to read the file
XmlTextReader textReader = new XmlTextReader("C:books.xml");
textReader.Read();
// If the node has value
while (textReader.Read())
{
II Move to fist element
textReader.MoveToElement();
Console.WriteLine("XmlTextReader Properties Test");
Console.WriteLine("===- =======");
// Read this element's properties and display them on console
Console.WriteLine("Name:" + textReader.Name);
Console.WriteLine("Base URI:" + textReader.BaseURI);
Console.WriteLine("Local Name:•+ textReader.LocalName);
N@1i%i@NAl+®'11
111D
Console.Writeline("Attribute Count:" +textReader.AttributeCount.ToString());
Console.Writeline("Depth:" +textReader.Depth.ToString());
Console.Writeline("Line Number:"+ textReader.LineNumber.ToString());
Console.Writeline("Node Type:" +textReader.NodeType.ToString());
Console.Writeline("Attribute Count:" + textReader.Value.ToString());
Console.Read();
file:.///C
:/USffl/N203TX/App0atall.ocal/Temporary ProJects/Consoli!Application1/bin:'Debu~ConsoleAppliotion1.EXE
•11un1111
--------=====------
ame:9enre ·
Base URI:file:///C:/books.xml
Local Name:genre
Attribute Count:0
Depth:2
Line Number:6
Node Type:EndElement
Attribute Count:
X
mlTextReader. Properties Test
-------------------
Name:
Base URI:file:///C:/books.xml
ocal Name:
Attribute Count:0
Depth:2
Line Number:6
Node Type:Whitespace
Attribute Count:
i•(·
12.2.3 Reading an XML Document
-
The XDocurnent makes it easy to read and navigate XML content. You can use the static
XDocurnent.Load() method to read XML documents from a file, URI, or stream, and you can use the
static XDocurnent.Parse() method to load XML content from a string.
Useful Methods for XElement and XDocurnent.
Method Description
Attributes() Gets the collection ofXAttribute objects for this element.
Attribute() Gets the XAttribute with the specific name.
Elements() Gets the collection ofXElement objects that are contained by this element. (This
is the top level only-these elements may in tum contain more elements.)
Optionally, you can specify an element name, and only those elements will be
retrieved. -
Element() Gets the single XElement contained by this element that has a specific name (or
null ifthere's no match). Ifthere is more than one matching element, this method
gets just the first one. -
• ru
Descendants() Gets the collection ofXElement objects that are contained by this element and
(optionally) have the name you specify. Unlike the Elements() method, this
method goes through all the layers ofthe document and finds elements at any
level of the hierarchy.
Nodes() Gets all the XNode objects contained by this element. This includes elements and
other content, such as comments. However, unlike the XmlTextReader class, the
XDocument does not consider attributes to be nodes.
~cendantNodes() Gets all the XNode object contained by this element. This method is like
Descendants() in that it drills down through all the layers ofnested elements.
These methods give you added flexibility to filter outjust the elements that interest you.
Example
Employee.xml
':'?xml version="1 .0" encoding="utf-8" ?>
<Employees>
<Employee>
<FirstName>ZAIDl</FirstName>
<Age>30</Age>
<Dept>Computer Science</Dept>
</Employee>
<Employee>
<FirstName>SAIF</FirstName>
<Age>30</Age>
<Dept>lnformation Technology</Dept>
</Employee>
<Employee>
<FirstName>ARIF</FirstName>
<Age>48</Age>
<Dept>Engineering</Dept>
</Employee>
<Employee>
<FirstName>SOHRABH</FirstName>
<Age>30</Age>
<Dept>M.Sc - IT</Dept>
</Employee>
</Employees>
Default.aspx :
---
322
dvanced Web Programming
_.,,. ,.- - __ .... .,..,,-
~ctDat~
.
.
DatabOund .. ~~tabound D•~! bound
DatabOund Databound Databound
Databound Databound 'Databound·
. : -· : ~~. ~-·~-· ~
··
DatabOund '•DatabOund .,, Databound
i: .•._,. . . ' -~....... :: . ,..
-'""'·.,. - ,-· -.- --~- '
DatabOund iDatabou~d, ,Databound , '
-..:~;..·--""~ ,.,_~ ---- "=' -..J._• ~:.,_
Default.aspx code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" lnherits="_Def;;
%>
<html xmlns="http://wWW.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form id="form1" rimat="server">
<div>
<table ciass="sty1e1">
<td class="sty1e3">
<asp:GridView ID="GridView1• runat="server" BackColor="White" BorderColor="Whtte'
BorderWidth="2px" Ce11Padding="3" Gridlines="None" AutoGenerateColumns="False"
BorderStyle="Ridge" Height='281px" Width="538px"
onselectedindexchanged="GridView1_SelectedlndexChanged" CellSpacing='1"
Font-Bold='True" Font-Names="Arial Black' Font-Size='X-Large'>
<FooterStyle BackColor="#C6C3C6" ForeColor="Black"></FooterStyle>
<HeaderStyle BackColor="#4A3CBC" Font-Bold='True" ForeColor="#E7E7FF"></HeaderStyle>
<PagerStyle HorizontalAlign="Right" BackColor="#C6C3C6" ForeColor="Black">
</PagerStyle>
<RowStyle BackColor="#DEDFDE" ForeColor="Black" />
<SelectedRowStyle BackColor-"#9471DE' ForeColor="White"
Bold="True"></SelectedRowStyle>
<Columns>
<asp:BoundField DataField="FirstName· HeaderText="First Name' ReadOnly="true· />
Font•
~L ill
~asp:BoundField DataField="Age" HeaderText="Age" ReadOnly="true" />
<asp:BoundField DataField="Dept" HeaderText="Department" ReadOnly="true" />
</Columns>
<SortedAscendingCellStyle BackColor="#F1F1F1• />
<SortedAscendingHeaderStyle BackColor="#594B9C" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#33276A• />
</asp:GridView></td>
</tr>
</table>
</div>
</form>
</body>
</html>
oefault.aspx.cs code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
XDocument document = XDocument.Load(@"F:ASP.NET
PROGEMPLOYEE.xml");
var query = from r in document.Descendants("Employee")
select new
FirstName = r.Element("FirstName").Value,
Age= r.Element("Age").Value,
Dept= r.Element("Dept").Value
RizviUnit 6LINQ
d
l
l
};
GridView1.DataSource =query;
GridView1.DataBind();
© ioc>"'°'t1S952JUNQ10XMI/DmUit.asp,
MiiMHMGAi+®ni41l
Select Data I
ZAIDI
SAIF nformation Technol~gyj
ARIF
~.
-~fr, ilf11r;~.-,~~·",
-'-_.,,,...,;.~~ -~- ; - - ~
XML bas arich set ofsupporting standards, many of which are far beyond the scope of this book.
One of the most useful in this family ofstandards is XML Schema. XML Schema defmes the rules to
which a specific XML document should conform, such as the allowable elements and attributes, the
order of elements, and the data type of each element. You define these requirements in an XML
Schema document (XSD).
Validating an XML Document
The following example shows you how to validate an XML document against a schema, using an
XmlReader that has validation features built in.
XML Schema (XSD)
The XML Schema language is also referred to as XML Schema Definition (XSD). An XML
Schema describes the structure ofan XML document.
XSD is a schema language; you use it to define the possible structure and contents of an XML
format A validating parser can then check whether an XML instance document conforms to an XSD
"lJ8 or a set ofschemas.
L t::__
XML 325
Example
<%@ Page Language="C#" AutoEventWireup="true"
lnherits="XmlValidalion" %>
<html xmlns="http://www.w3.org/1999/xhtm1" >
<head runat="server">
<title>Xml Validation</title>
</head>
<body>
<form id="form1• runat="server">
<div class="Box">
<asp:RadioButton id="optValid"
runat="server"
Text="Use Data.xml"
Checked="True"
GroupName="Valid">
</asp:RadioButton>
<asp:button id="crndValidate"
runat="server''
Text="Validate XML"
OnClick="cmdValidate_Click">
</asp:button>
</div>
<div>
CodeFile="Default.aspx.cs"
<asp:Label id="lblStatus" runat="server" EnableViewState="False"></asp:Label>
</div>
</form>
</body>
</html>
File: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.LIi;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
ng
32
using System.Web.UI.HtmlControls;
using System.Xml.Schema;
using System.IC;
using System.Xml;
public partial class XmlValidation : System.Web.UI.Page
{
protected void crndVal'date_Click(object sender, EventArgs e)
{
string filePath ="Data.xml";
lblStatus.Text ="";
XmlReaderSettings settings =new XmlReaderSettings();
settings.Schemas.Add("yourURI",Request.PhysicalApplicationPath +"Data.xsd");
settings.ValidationType= ValidationType.Schema;
settings.ValidationEventHandler += new ValidationEventHandler(ValidateHandler);
FileStream fs =new FileStream(filePath, FileMode.Open);
XmlReader r=XmlReader.Create(fs, settings);
while (r.Read())
{
l
ls.Close();
lblStatus.Text += "<br />Complete.";
}
public void ValidateHandler(Object sender, ValidationEventArgs e)
{
}
}
lblStatus.Text +="Error:"+ a.Message +"<br />';
File: Data.xml
<?xml version='1.0' encoding='utf-8' ?>
<EmployeeDetails>
<FirstName>ZAIDl</FirstName>
)(ML 327
.:MiddleName>ZARl</MiddleName>
<LastName>HAIDER~/LastName>
<Emai11d>haid~rzaidi20@gmail.com</Emailld>
.:Mobile>8898253962</Mobile>
-=:Address>B/503, Jogeshwari , Mumbai</Address>
<Blke>Yamaha FZS</Bike>
</EmployeeDetails>
File: Oata.xsd
Open the existing XML.
Go to XML menu.
·Select "Create schema"- option.
Your XSD will be created automatically.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema. attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="EmployeeDetails">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstName" type="xs:string" />
<xs:element name="MiddleName" type="xs:string" />
<xs:element name="LastName" type="xs:string" />
<xs:element name="Emailld" type="xs:string" />
<xs:element name="Mobile" type="xs:unsignedLong"/>
<xs:element name="Address" type="xs:string" />
<xs:element name="Bike" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
t)l:s
·xMl,Display and:rrahsf-9~
1''.lS
elementFormDefault="qualified"
Another standard associated with XML is XSL Transformations (XSL'I). XSLT allows you to
create style sheets that can extract a portion of a large XML document or transform an XML document
into another type of XML document. An even more popular use of XSLT is to convert an XML
document into an HTML document that can be displayed in a browser.
XSLT is easy to use from the point of view of the .NET class library. All you need to understand
is how to create an XslCompiledTransform object (found in the Sys'tem.Xml.Xsl namespace). You use
wuuJiq
£ M%iiHMGPi+
its Load() method to specify a style sheet and its Transfonn() method to output the result to a fit
srreant e or
There are two main components in XSLT that helps transformations, XSLT Proces~o
formatter. First, the XSLT processor takes two inputs, a XML document and a XSLT sty! r ~
nd
XSL
XSLTprocessor starts from the root node and then it goes for the root node's children. Th:s ;et. lbe
searches the stylesheet element to see if any template element and other XSLT elements p ocessor
As per the defined XSLT rules it fetches data from the XML document and generates a are! defined.
. resu ts tr .
XML formal The XML formatter takes mput as a result tree and generates the final end ee 111
HTML. text other XML format. products as
The XML Web Control
The XML control is used to display an XML document or the results ofan XSL Tra ti
ns onn
Note: At least one of the XML Document properties must be set or no XML doc ·
ument ·
displayed. ts
. eoreit'
You can also specify an XSLT document that will fonnat the XML document b ti
written to the output. You can format the XML document with the Transfonn pro e
18
the TransfonnSource property. P rty or
Example
XML File: XMLFiJe.xml
<?xml version='1.0" encoding='utf-8' ?>
<breakfast_meru>
<food>
<name>Biriyani</name>
<price>$10.60</price>
<description>Rice with chicken</description>
<calories>650</calories>
</food>
<food>
<name>Juice</name>
<price>$4.20</price>
<description>Frult juices like mango, banana, apple</description>
<calories>200</calories>
</food>
</breakfast menu>
XML 329
XSLTFile
XSLTFile.xslt
'°:?xml version="1.0" encoding="iso-8859-1"?>
1 ....
' t 11;,
<html xsl:version="1.0"
xmlns="http://www.w3.org/1999/xhtml">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE">
<xsl:for-each select="breakfast_menu/food">
<div style="background-color:teal;color:white;padding:4px">
<span style="font-weight:bold">
<xsl:value-of select="name"/>
</span>
- <xsl:value-of select="price"/>
</div>
<div style="margin-left:20px;margin-bottom:1em;font-size:1Opt">
<xsl:value-of select="description"/>
<span style="font-style:italic">
<xsl:value-of select="calories"/> -
(calories per serving)
</span>
</div>
</xsl:for-each>
</body>
</html>
.... Xmn I
.., Use this <OfltnH to perfonn XSl trlmfonns.
{' · •
LaHI
Webforml.aspx source code
- ,e,•
Without XML Control
r.
_,,•-·.r,• :,-..
"Xlxxl
... . ..'.'./'!,'./
<%@ Page Language="C#"
lnherits="Webform1" %>
AutoEventWlreup="true" CodeFile="Webform1.aspx.cs"
---
<html xmlns="http:/Jwww.w3.org/1999/xhtml">
<head n1nat='server">
<ti11e></title>
</head>
<bOdy>
<form ld='form1' n1nat=·server">
<div>
<table class='style1'>
<td class='style3'>
dvancad Wab Prograrnrn1ng
<asp:Button ID='Button1' n1nat="server" Font-Bold="True" Font-Size="Larger"
ForeColor-"#003366' Height="33px" onclick="Button1_Click"
styte='font-weight: 700" Text="XML Display" />
<ltd>
<td>
<asp:Button ID="Button2" n1nat="server" Font-Bold="True" Font-Size="Larger"
ForeColor-"#003366" Height="33px" onclick="Button2_(?1ick'
styte='font-weight: 700" Text='Without XML Control "/>
<ltd>
</tr>
<td class='style6">
<asp:Xml ID="Xml1" runat="server"></asp:Xml>
<ltd>
<td class='style5">
<asp:Label ID="Label1" runat='server" Font-Bold="True" Font-Size="Large" I
Text='Label"></asp:Label>
<ltd>
</tr>
</table>
</div>
</form>
</body>
</html>
)(ML
+
C' 1,) ©"'
[ XML Display I
Webforml.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IQ;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Web.UI;
using System.Text;
using System.Web.UI.WebControls;
public partial class Webform1 : System.Web.UI.Page
{
[ Without XML Control ]
Label
protected void Page_Load(object sender, EventArgs e)
{
protected void Button1_Click(object sender, EventArgs e)
{
XmI1.Visible = true;
Label1 .Visible =false;
// This is being read from the same folder as this page is in.(only for demo purpose)
// In real applications this xml might be coming from some external source or database.
string xmlString = File.ReadAIIText(Server.MapPath("XMLFile.xml"));
II Define the contents of the XML control
Xm11.DocumentContent =xmlString;
II Specify the XSL file to be used for transformation.
331
DD
&l¼i,H+MW?i+Wi,,hm!
Xml1 .TransformSource =Server.MapPath("XSLTFile.xslt");
}
protected void Button2_Click(object sender, EventArgs e)
{
Xml1.Visible =false;
Label1.Visible =true;
JI Getting file path
string strXSLTFile =Server.MapPath("XSLTFile.xslt");
string strXMLFile =Server.MapPath("XMLFile.xml");
II Creating XSLCompiled object
XslCompiledTransform objXSLTransform = new XslCompiledTransform();
objXSLTransform.Load(strXSLTFile);
II Creating StringBuilder object to hold html data and creates TextWriter object to hold data f
XslCompiled.Transform method rom
StringBuilder htrnlOu1put = new StringBuilder();
TextWriter htrnlWriter =new StringWriter(htmlOutput);
II Creating XmlReader object to read XML content
XmlReader reader= XmlReader.Create(strXMLFile);
II Call Transform() method to create html string and write in TextWriter object.
objXSLTransform.Transform(reader, null, htmlWriter);
Label1.Text =htmlOutput.ToString();
// Closing xmlreader object
reader.Close();
,
XML
333
1oe.n,o,t:614Z/Wtblorm1/Weblorn X +
© IOCalnost:t,l '1
® <:! Q . .. . . - ~---- - -
l~ ~
r.l""'.~;. -.m•,.,.-_
_
¼ ~,..,-i;:.· _ . '""'- ..,,. t;.... ....- .,. .,_,," _ ...
•
1
·• '" [!<ML Display I , [Without_
XML Control 
Biriyani - $10.60
Rice with chicken650 (calories per serving)
Juice - $4.20
i1
Frurt juices like mango, banana, apple200 (calories per serving)
loc,lloldlW#mforfflVWcllfo.-,· )(
I
~.: C! 0 ~-
f.XMl.;J}i~play
Biriyani - $10.60
Rlct with _151),_,,.,-inw
Juice - $4.20
FrultjulCIO 11<,-.bo111111, oppllm/-por-'"11/
ll!l@ -
·:i .'-:e;-z~-:~::.~:-~--~~~:.t~:f1~~~#~:@-:ii~~>r -:~/-.,;-~-~·:_
J ·:}J~~fflffY~-:~·-·:·
I. Explain xml with example.
2. Explain XML TextWriter with example.
3. Explain XML TextReader with example.
4. How to Reading an XML Document? Explain with example.
5. Explain XML Validation with proper example.
6. Explain XML Display and Transforms in asp.net with example.
Ad

Recommended

Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet
Dr. Volkan OBAN
 
Pandas
Pandas
Jyoti shukla
 
Unit 3 part ii Data mining
Unit 3 part ii Data mining
Dhilsath Fathima
 
Knowledge Discovery and Data Mining
Knowledge Discovery and Data Mining
Amritanshu Mehra
 
Elmasri Navathe DBMS Unit-1 ppt
Elmasri Navathe DBMS Unit-1 ppt
AbhinavPandey274499
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
CursoSENAC
 
Introduction to Data Analytics
Introduction to Data Analytics
Dr. C.V. Suresh Babu
 
Data analytics
Data analytics
davidfergarcia
 
Data Science Project Lifecycle and Skill Set
Data Science Project Lifecycle and Skill Set
IDEAS - Int'l Data Engineering and Science Association
 
POO - 16 - Polimorfismo
POO - 16 - Polimorfismo
Ludimila Monjardim Casagrande
 
MySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs Academy
thewebsacademy
 
ETL Process
ETL Process
Rashmi Bhat
 
Big Data analytics
Big Data analytics
ArunKumar5524
 
A Practical-ish Introduction to Data Science
A Practical-ish Introduction to Data Science
Mark West
 
Partitioning
Partitioning
Reema Gajjar
 
12. Indexing and Hashing in DBMS
12. Indexing and Hashing in DBMS
koolkampus
 
Chapter 11 cluster advanced : web and text mining
Chapter 11 cluster advanced : web and text mining
Houw Liong The
 
Python pandas Library
Python pandas Library
Md. Sohag Miah
 
Tree
Tree
SHEETAL WAGHMARE
 
Dbms Lec Uog 02
Dbms Lec Uog 02
smelltulip
 
Data cubes
Data cubes
Mohammed
 
Pandas
Pandas
maikroeder
 
Introduction To Data Warehousing
Introduction To Data Warehousing
Alex Meadows
 
Data warehouse project on retail store
Data warehouse project on retail store
Siddharth Chaudhary
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
Alvaro Viebrantz
 
Project Presentation on Data WareHouse
Project Presentation on Data WareHouse
Abhi Bhardwaj
 
Introduction to pandas
Introduction to pandas
Piyush rai
 
Directory services
Directory services
Christalin Nelson
 
Xml writers
Xml writers
Raghu nath
 
The xml
The xml
Raghu nath
 

More Related Content

What's hot (20)

Data Science Project Lifecycle and Skill Set
Data Science Project Lifecycle and Skill Set
IDEAS - Int'l Data Engineering and Science Association
 
POO - 16 - Polimorfismo
POO - 16 - Polimorfismo
Ludimila Monjardim Casagrande
 
MySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs Academy
thewebsacademy
 
ETL Process
ETL Process
Rashmi Bhat
 
Big Data analytics
Big Data analytics
ArunKumar5524
 
A Practical-ish Introduction to Data Science
A Practical-ish Introduction to Data Science
Mark West
 
Partitioning
Partitioning
Reema Gajjar
 
12. Indexing and Hashing in DBMS
12. Indexing and Hashing in DBMS
koolkampus
 
Chapter 11 cluster advanced : web and text mining
Chapter 11 cluster advanced : web and text mining
Houw Liong The
 
Python pandas Library
Python pandas Library
Md. Sohag Miah
 
Tree
Tree
SHEETAL WAGHMARE
 
Dbms Lec Uog 02
Dbms Lec Uog 02
smelltulip
 
Data cubes
Data cubes
Mohammed
 
Pandas
Pandas
maikroeder
 
Introduction To Data Warehousing
Introduction To Data Warehousing
Alex Meadows
 
Data warehouse project on retail store
Data warehouse project on retail store
Siddharth Chaudhary
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
Alvaro Viebrantz
 
Project Presentation on Data WareHouse
Project Presentation on Data WareHouse
Abhi Bhardwaj
 
Introduction to pandas
Introduction to pandas
Piyush rai
 
Directory services
Directory services
Christalin Nelson
 
MySql Triggers Tutorial - The Webs Academy
MySql Triggers Tutorial - The Webs Academy
thewebsacademy
 
A Practical-ish Introduction to Data Science
A Practical-ish Introduction to Data Science
Mark West
 
12. Indexing and Hashing in DBMS
12. Indexing and Hashing in DBMS
koolkampus
 
Chapter 11 cluster advanced : web and text mining
Chapter 11 cluster advanced : web and text mining
Houw Liong The
 
Dbms Lec Uog 02
Dbms Lec Uog 02
smelltulip
 
Introduction To Data Warehousing
Introduction To Data Warehousing
Alex Meadows
 
Data warehouse project on retail store
Data warehouse project on retail store
Siddharth Chaudhary
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
Alvaro Viebrantz
 
Project Presentation on Data WareHouse
Project Presentation on Data WareHouse
Abhi Bhardwaj
 
Introduction to pandas
Introduction to pandas
Piyush rai
 

Similar to Advanced Web Programming Chapter 12 (20)

Xml writers
Xml writers
Raghu nath
 
The xml
The xml
Raghu nath
 
Chapter 18
Chapter 18
application developer
 
XML Schema.pptx
XML Schema.pptx
JohnsonDcunha1
 
XML
XML
baabtra.com - No. 1 supplier of quality freshers
 
Xml processing in scala
Xml processing in scala
Neelkanth Sachdeva
 
Xml processing in scala
Xml processing in scala
Knoldus Inc.
 
Java XML Parsing
Java XML Parsing
srinivasanjayakumar
 
06 xml processing-in-.net
06 xml processing-in-.net
glubox
 
programming with xml for graduate students
programming with xml for graduate students
RameshPrasadBhatta2
 
XML stands for EXtensible Markup Language
XML stands for EXtensible Markup Language
NetajiGandi1
 
Basics of XML
Basics of XML
indiangarg
 
XML Tools for Perl
XML Tools for Perl
Geir Aalberg
 
ASP.Net Presentation Part2
ASP.Net Presentation Part2
Neeraj Mathur
 
Extensible markup language attacks
Extensible markup language attacks
n|u - The Open Security Community
 
Simple xml in .net
Simple xml in .net
Vi Vo Hung
 
Applied xml programming for microsoft 2
Applied xml programming for microsoft 2
Raghu nath
 
Xsd examples
Xsd examples
Bình Trọng Án
 
Ch23 xml processing_with_java
Ch23 xml processing_with_java
ardnetij
 
Ch23
Ch23
preetamju
 
Ad

More from RohanMistry15 (20)

software-quality-assurance question paper 2023
software-quality-assurance question paper 2023
RohanMistry15
 
security-in-computing question paper 2023
security-in-computing question paper 2023
RohanMistry15
 
IT-service-management question paper 2023
IT-service-management question paper 2023
RohanMistry15
 
geographical-information-system question paper
geographical-information-system question paper
RohanMistry15
 
Business-Intelligence question paper 2023
Business-Intelligence question paper 2023
RohanMistry15
 
Aeronautical Engineering Career Information
Aeronautical Engineering Career Information
RohanMistry15
 
Chinese Cyber attack on mumbai power plant
Chinese Cyber attack on mumbai power plant
RohanMistry15
 
Zeus learning
Zeus learning
RohanMistry15
 
Advanced Web Programming Chapter 8
Advanced Web Programming Chapter 8
RohanMistry15
 
Advanced Web Programming Chapter 5
Advanced Web Programming Chapter 5
RohanMistry15
 
Advanced Web Programming Chapter 4
Advanced Web Programming Chapter 4
RohanMistry15
 
Advanced Web Programming Chapter 13 & 14
Advanced Web Programming Chapter 13 & 14
RohanMistry15
 
Advanced Web Programming Chapter 2
Advanced Web Programming Chapter 2
RohanMistry15
 
Advanced Web Programming Chapter 3
Advanced Web Programming Chapter 3
RohanMistry15
 
Advanced Web Programming Chapter 10
Advanced Web Programming Chapter 10
RohanMistry15
 
Advanced Web Programming Chapter 11
Advanced Web Programming Chapter 11
RohanMistry15
 
Advanced Web Programming Chapter 9
Advanced Web Programming Chapter 9
RohanMistry15
 
Advanced Web Programming Chapter 6
Advanced Web Programming Chapter 6
RohanMistry15
 
Advanced Web Programming Chapter 1
Advanced Web Programming Chapter 1
RohanMistry15
 
Advanced Web Programming Chapter 7
Advanced Web Programming Chapter 7
RohanMistry15
 
software-quality-assurance question paper 2023
software-quality-assurance question paper 2023
RohanMistry15
 
security-in-computing question paper 2023
security-in-computing question paper 2023
RohanMistry15
 
IT-service-management question paper 2023
IT-service-management question paper 2023
RohanMistry15
 
geographical-information-system question paper
geographical-information-system question paper
RohanMistry15
 
Business-Intelligence question paper 2023
Business-Intelligence question paper 2023
RohanMistry15
 
Aeronautical Engineering Career Information
Aeronautical Engineering Career Information
RohanMistry15
 
Chinese Cyber attack on mumbai power plant
Chinese Cyber attack on mumbai power plant
RohanMistry15
 
Advanced Web Programming Chapter 8
Advanced Web Programming Chapter 8
RohanMistry15
 
Advanced Web Programming Chapter 5
Advanced Web Programming Chapter 5
RohanMistry15
 
Advanced Web Programming Chapter 4
Advanced Web Programming Chapter 4
RohanMistry15
 
Advanced Web Programming Chapter 13 & 14
Advanced Web Programming Chapter 13 & 14
RohanMistry15
 
Advanced Web Programming Chapter 2
Advanced Web Programming Chapter 2
RohanMistry15
 
Advanced Web Programming Chapter 3
Advanced Web Programming Chapter 3
RohanMistry15
 
Advanced Web Programming Chapter 10
Advanced Web Programming Chapter 10
RohanMistry15
 
Advanced Web Programming Chapter 11
Advanced Web Programming Chapter 11
RohanMistry15
 
Advanced Web Programming Chapter 9
Advanced Web Programming Chapter 9
RohanMistry15
 
Advanced Web Programming Chapter 6
Advanced Web Programming Chapter 6
RohanMistry15
 
Advanced Web Programming Chapter 1
Advanced Web Programming Chapter 1
RohanMistry15
 
Advanced Web Programming Chapter 7
Advanced Web Programming Chapter 7
RohanMistry15
 
Ad

Recently uploaded (20)

FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
June Patch Tuesday
June Patch Tuesday
Ivanti
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Seminar: New Data: Passkey Adoption in the Workforce.pptx
FIDO Alliance
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
“From Enterprise to Makers: Driving Vision AI Innovation at the Extreme Edge,...
Edge AI and Vision Alliance
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
“Addressing Evolving AI Model Challenges Through Memory and Storage,” a Prese...
Edge AI and Vision Alliance
 
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Reducing Conflicts and Increasing Safety Along the Cycling Networks of East-F...
Safe Software
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
June Patch Tuesday
June Patch Tuesday
Ivanti
 
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
National Fuels Treatments Initiative: Building a Seamless Map of Hazardous Fu...
Safe Software
 
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 

Advanced Web Programming Chapter 12

  • 1. Chapter'12 ~'-:~~ :;:I I ~ dJ ;..,,1.,0ltt ·"' UnitV C:vrXML r-~ I Chapter Outline 12.1 Introduction: XML: Extensible Markup Language 12.2 XML Basics 12.3 The XML Classes 12.4 XML Validation 12.5 XML Display and Transforms 12.6 Questions ~ , - L::~ ~l J~~~!_!J:._~~J/t:_ ) =It is a very widely used format for exchanging data, mainly because it's easy readable for both humans and machines. =XML is designed as an all-purpose format for organizing data. =Amarkup language is used to provide information about a document. =Tags are added to the document to provide the extra information. =HTML tags tell abrowser how to display the document. =XML tags give areader some idea what some of the data means. _;_--~->~~.t ,,r,~ - .-. :/Sffl·. ---__,;::;...;;:....,;.;.£..,;:=~............-..;......._...:,. When creating your own XML document, you need to remember only a few rules: =XML documents must start with an XML declaration like <?xml version="1.0"?>. =XML elements are composed of a start tag (like <Name>) and an end tag (like </Name>). =Content is placed between the start and end tags. If you include a start tag, you must also include a corresponding end tag. = Whitespace between elements is ignored. You can use only valid characters in the content for an element. You can't enter special characters, such as the angle brackets (<>) and the ampersand (&), as content. XML elements are case sensitive, so <ID> and <id> are completely different elements.
  • 2. XML 317 :> All elements must be nested in a root element :> Every element must be fully enclosed. In other words, when you open a subelement, you need to close it before you can close the parent. Example <?xml version="1.0" encoding="utf-S" ?> <address> <name> <first>Haider</first> <last>Zaidi</last> </name> <email>[email protected]</email> <phone>8898253962</phone> <birthday> <year>1988</year> <month>04</month> <day>03</day> </birthday> </address> XML File Tree year day :> .NET provides a rich set of classes for XML manipulation in several namespaces that start with System.Xml. :> NET provides seven namespace: using System.Xml; using System.Xml.Scherna; using System.Xml.Linq; / "--
  • 3. ) ) 1n9 318 using System.Xml.Resolvers; ,, using System.Xml.Serialization; using System.Xml.XPath; using System.Xml.Xsl; The SystemXml namespace contains major XML classes. This namespace contai·ns tnan classes to read and write XML documents. Y 12.3.1 The XML TextWriter One of the simplest ways to create or read any XML document is to use the ba . XmITextWriter and XmlTextReader classes. sic These classes work like their StreamWriter and StreamReader relatives, except th t th write and read XML documents instead ofordinary text files. . a ey Example: The following code creates an xmI file with the name Employee. using System; using System.Text; using System.Xml; namespace ConsoleApplication3 { class Program static void Main(stringO args) { XmlWriter xmlWriter =XmlWriter.Create("Employee.xml"); xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("Employees"); xmlWriter.WriteStartElement("Employee"); xmlWriter.WriteAttributeString("age", "29"); xmlWriter.WriteString("Haider Zaidi"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("Employee"); xmlWriter.WriteAttributeString("age", "48"); xmlWriter.WriteString("Arif Patel"); xmlWriter.WriteEndDocument();
  • 4. .., l )(r/lL 319 lJl)IWriter.WriteStartElement: Writes out a start tag with the specified local name. xmtWriter.WriteElementString: Writes an element containing a string value. lllllWriter.WriteEndDocument: Closes any open elements or attributes and puts the writer k I .0 the Start state. bac lJl)IWriter.WriteAttributeString: This method writes out the attribute with a user defined espace prefix and associates it with the given namespace. naJJl 12.3.2 XMLTextReader :> With Xm!TextReader we parse XML data. This type acts upon a string containing XML markup. We use the XmlTextReader constructor and develop a custom parser for XML data. This is an efficient approach to XML parsing. :> The Xm!Reader class is an abstract bases classes and contains methods and properties to read adocument. The Read method reads a node in the stream. :> I'm using books.xml to read and display its data through XmlTextReader. This file comes with VS.NET samples (https://msdn.microsoftcom/en- us/Iibrary/ms762271(v=vs.85).aspx ). Example using System; using System.Text; using System.Xml; namespace ConsoleApplication1 class Program static void args) {// Create an isntance of XmlTextReader and call Read method to read the file XmlTextReader textReader = new XmlTextReader("C:books.xml"); textReader.Read(); // If the node has value while (textReader.Read()) { II Move to fist element textReader.MoveToElement(); Console.WriteLine("XmlTextReader Properties Test"); Console.WriteLine("===- ======="); // Read this element's properties and display them on console Console.WriteLine("Name:" + textReader.Name); Console.WriteLine("Base URI:" + textReader.BaseURI); Console.WriteLine("Local Name:•+ textReader.LocalName);
  • 5. N@1i%i@NAl+®'11 111D Console.Writeline("Attribute Count:" +textReader.AttributeCount.ToString()); Console.Writeline("Depth:" +textReader.Depth.ToString()); Console.Writeline("Line Number:"+ textReader.LineNumber.ToString()); Console.Writeline("Node Type:" +textReader.NodeType.ToString()); Console.Writeline("Attribute Count:" + textReader.Value.ToString()); Console.Read(); file:.///C :/USffl/N203TX/App0atall.ocal/Temporary ProJects/Consoli!Application1/bin:'Debu~ConsoleAppliotion1.EXE •11un1111 --------=====------ ame:9enre · Base URI:file:///C:/books.xml Local Name:genre Attribute Count:0 Depth:2 Line Number:6 Node Type:EndElement Attribute Count: X mlTextReader. Properties Test ------------------- Name: Base URI:file:///C:/books.xml ocal Name: Attribute Count:0 Depth:2 Line Number:6 Node Type:Whitespace Attribute Count: i•(· 12.2.3 Reading an XML Document - The XDocurnent makes it easy to read and navigate XML content. You can use the static XDocurnent.Load() method to read XML documents from a file, URI, or stream, and you can use the static XDocurnent.Parse() method to load XML content from a string. Useful Methods for XElement and XDocurnent. Method Description Attributes() Gets the collection ofXAttribute objects for this element. Attribute() Gets the XAttribute with the specific name. Elements() Gets the collection ofXElement objects that are contained by this element. (This is the top level only-these elements may in tum contain more elements.) Optionally, you can specify an element name, and only those elements will be retrieved. - Element() Gets the single XElement contained by this element that has a specific name (or null ifthere's no match). Ifthere is more than one matching element, this method gets just the first one. -
  • 6. • ru Descendants() Gets the collection ofXElement objects that are contained by this element and (optionally) have the name you specify. Unlike the Elements() method, this method goes through all the layers ofthe document and finds elements at any level of the hierarchy. Nodes() Gets all the XNode objects contained by this element. This includes elements and other content, such as comments. However, unlike the XmlTextReader class, the XDocument does not consider attributes to be nodes. ~cendantNodes() Gets all the XNode object contained by this element. This method is like Descendants() in that it drills down through all the layers ofnested elements. These methods give you added flexibility to filter outjust the elements that interest you. Example Employee.xml ':'?xml version="1 .0" encoding="utf-8" ?> <Employees> <Employee> <FirstName>ZAIDl</FirstName> <Age>30</Age> <Dept>Computer Science</Dept> </Employee> <Employee> <FirstName>SAIF</FirstName> <Age>30</Age> <Dept>lnformation Technology</Dept> </Employee> <Employee> <FirstName>ARIF</FirstName> <Age>48</Age> <Dept>Engineering</Dept> </Employee> <Employee> <FirstName>SOHRABH</FirstName> <Age>30</Age> <Dept>M.Sc - IT</Dept> </Employee> </Employees> Default.aspx :
  • 7. --- 322 dvanced Web Programming _.,,. ,.- - __ .... .,..,,- ~ctDat~ . . DatabOund .. ~~tabound D•~! bound DatabOund Databound Databound Databound Databound 'Databound· . : -· : ~~. ~-·~-· ~ ·· DatabOund '•DatabOund .,, Databound i: .•._,. . . ' -~....... :: . ,.. -'""'·.,. - ,-· -.- --~- ' DatabOund iDatabou~d, ,Databound , ' -..:~;..·--""~ ,.,_~ ---- "=' -..J._• ~:.,_ Default.aspx code <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" lnherits="_Def;; %> <html xmlns="http://wWW.w3.org/1999/xhtml"> <head runat="server"> </head> <body> <form id="form1" rimat="server"> <div> <table ciass="sty1e1"> <td class="sty1e3"> <asp:GridView ID="GridView1• runat="server" BackColor="White" BorderColor="Whtte' BorderWidth="2px" Ce11Padding="3" Gridlines="None" AutoGenerateColumns="False" BorderStyle="Ridge" Height='281px" Width="538px" onselectedindexchanged="GridView1_SelectedlndexChanged" CellSpacing='1" Font-Bold='True" Font-Names="Arial Black' Font-Size='X-Large'> <FooterStyle BackColor="#C6C3C6" ForeColor="Black"></FooterStyle> <HeaderStyle BackColor="#4A3CBC" Font-Bold='True" ForeColor="#E7E7FF"></HeaderStyle> <PagerStyle HorizontalAlign="Right" BackColor="#C6C3C6" ForeColor="Black"> </PagerStyle> <RowStyle BackColor="#DEDFDE" ForeColor="Black" /> <SelectedRowStyle BackColor-"#9471DE' ForeColor="White" Bold="True"></SelectedRowStyle> <Columns> <asp:BoundField DataField="FirstName· HeaderText="First Name' ReadOnly="true· /> Font•
  • 8. ~L ill ~asp:BoundField DataField="Age" HeaderText="Age" ReadOnly="true" /> <asp:BoundField DataField="Dept" HeaderText="Department" ReadOnly="true" /> </Columns> <SortedAscendingCellStyle BackColor="#F1F1F1• /> <SortedAscendingHeaderStyle BackColor="#594B9C" /> <SortedDescendingCellStyle BackColor="#CAC9C9" /> <SortedDescendingHeaderStyle BackColor="#33276A• /> </asp:GridView></td> </tr> </table> </div> </form> </body> </html> oefault.aspx.cs code using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml.Linq; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { XDocument document = XDocument.Load(@"F:ASP.NET PROGEMPLOYEE.xml"); var query = from r in document.Descendants("Employee") select new FirstName = r.Element("FirstName").Value, Age= r.Element("Age").Value, Dept= r.Element("Dept").Value RizviUnit 6LINQ
  • 9. d l l }; GridView1.DataSource =query; GridView1.DataBind(); © ioc>"'°'t1S952JUNQ10XMI/DmUit.asp, MiiMHMGAi+®ni41l Select Data I ZAIDI SAIF nformation Technol~gyj ARIF ~. -~fr, ilf11r;~.-,~~·", -'-_.,,,...,;.~~ -~- ; - - ~ XML bas arich set ofsupporting standards, many of which are far beyond the scope of this book. One of the most useful in this family ofstandards is XML Schema. XML Schema defmes the rules to which a specific XML document should conform, such as the allowable elements and attributes, the order of elements, and the data type of each element. You define these requirements in an XML Schema document (XSD). Validating an XML Document The following example shows you how to validate an XML document against a schema, using an XmlReader that has validation features built in. XML Schema (XSD) The XML Schema language is also referred to as XML Schema Definition (XSD). An XML Schema describes the structure ofan XML document. XSD is a schema language; you use it to define the possible structure and contents of an XML format A validating parser can then check whether an XML instance document conforms to an XSD "lJ8 or a set ofschemas. L t::__
  • 10. XML 325 Example <%@ Page Language="C#" AutoEventWireup="true" lnherits="XmlValidalion" %> <html xmlns="http://www.w3.org/1999/xhtm1" > <head runat="server"> <title>Xml Validation</title> </head> <body> <form id="form1• runat="server"> <div class="Box"> <asp:RadioButton id="optValid" runat="server" Text="Use Data.xml" Checked="True" GroupName="Valid"> </asp:RadioButton> <asp:button id="crndValidate" runat="server'' Text="Validate XML" OnClick="cmdValidate_Click"> </asp:button> </div> <div> CodeFile="Default.aspx.cs" <asp:Label id="lblStatus" runat="server" EnableViewState="False"></asp:Label> </div> </form> </body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.LIi; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;
  • 11. ng 32 using System.Web.UI.HtmlControls; using System.Xml.Schema; using System.IC; using System.Xml; public partial class XmlValidation : System.Web.UI.Page { protected void crndVal'date_Click(object sender, EventArgs e) { string filePath ="Data.xml"; lblStatus.Text =""; XmlReaderSettings settings =new XmlReaderSettings(); settings.Schemas.Add("yourURI",Request.PhysicalApplicationPath +"Data.xsd"); settings.ValidationType= ValidationType.Schema; settings.ValidationEventHandler += new ValidationEventHandler(ValidateHandler); FileStream fs =new FileStream(filePath, FileMode.Open); XmlReader r=XmlReader.Create(fs, settings); while (r.Read()) { l ls.Close(); lblStatus.Text += "<br />Complete."; } public void ValidateHandler(Object sender, ValidationEventArgs e) { } } lblStatus.Text +="Error:"+ a.Message +"<br />'; File: Data.xml <?xml version='1.0' encoding='utf-8' ?> <EmployeeDetails> <FirstName>ZAIDl</FirstName>
  • 12. )(ML 327 .:MiddleName>ZARl</MiddleName> <LastName>HAIDER~/LastName> <Emai11d>[email protected]</Emailld> .:Mobile>8898253962</Mobile> -=:Address>B/503, Jogeshwari , Mumbai</Address> <Blke>Yamaha FZS</Bike> </EmployeeDetails> File: Oata.xsd Open the existing XML. Go to XML menu. ·Select "Create schema"- option. Your XSD will be created automatically. <?xml version="1.0" encoding="utf-8"?> <xs:schema. attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="EmployeeDetails"> <xs:complexType> <xs:sequence> <xs:element name="FirstName" type="xs:string" /> <xs:element name="MiddleName" type="xs:string" /> <xs:element name="LastName" type="xs:string" /> <xs:element name="Emailld" type="xs:string" /> <xs:element name="Mobile" type="xs:unsignedLong"/> <xs:element name="Address" type="xs:string" /> <xs:element name="Bike" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> t)l:s ·xMl,Display and:rrahsf-9~ 1''.lS elementFormDefault="qualified" Another standard associated with XML is XSL Transformations (XSL'I). XSLT allows you to create style sheets that can extract a portion of a large XML document or transform an XML document into another type of XML document. An even more popular use of XSLT is to convert an XML document into an HTML document that can be displayed in a browser. XSLT is easy to use from the point of view of the .NET class library. All you need to understand is how to create an XslCompiledTransform object (found in the Sys'tem.Xml.Xsl namespace). You use
  • 13. wuuJiq £ M%iiHMGPi+ its Load() method to specify a style sheet and its Transfonn() method to output the result to a fit srreant e or There are two main components in XSLT that helps transformations, XSLT Proces~o formatter. First, the XSLT processor takes two inputs, a XML document and a XSLT sty! r ~ nd XSL XSLTprocessor starts from the root node and then it goes for the root node's children. Th:s ;et. lbe searches the stylesheet element to see if any template element and other XSLT elements p ocessor As per the defined XSLT rules it fetches data from the XML document and generates a are! defined. . resu ts tr . XML formal The XML formatter takes mput as a result tree and generates the final end ee 111 HTML. text other XML format. products as The XML Web Control The XML control is used to display an XML document or the results ofan XSL Tra ti ns onn Note: At least one of the XML Document properties must be set or no XML doc · ument · displayed. ts . eoreit' You can also specify an XSLT document that will fonnat the XML document b ti written to the output. You can format the XML document with the Transfonn pro e 18 the TransfonnSource property. P rty or Example XML File: XMLFiJe.xml <?xml version='1.0" encoding='utf-8' ?> <breakfast_meru> <food> <name>Biriyani</name> <price>$10.60</price> <description>Rice with chicken</description> <calories>650</calories> </food> <food> <name>Juice</name> <price>$4.20</price> <description>Frult juices like mango, banana, apple</description> <calories>200</calories> </food> </breakfast menu>
  • 14. XML 329 XSLTFile XSLTFile.xslt '°:?xml version="1.0" encoding="iso-8859-1"?> 1 .... ' t 11;, <html xsl:version="1.0" xmlns="http://www.w3.org/1999/xhtml"> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <body style="font-family:Arial;font-size:12pt;background-color:#EEEEEE"> <xsl:for-each select="breakfast_menu/food"> <div style="background-color:teal;color:white;padding:4px"> <span style="font-weight:bold"> <xsl:value-of select="name"/> </span> - <xsl:value-of select="price"/> </div> <div style="margin-left:20px;margin-bottom:1em;font-size:1Opt"> <xsl:value-of select="description"/> <span style="font-style:italic"> <xsl:value-of select="calories"/> - (calories per serving) </span> </div> </xsl:for-each> </body> </html> .... Xmn I .., Use this <OfltnH to perfonn XSl trlmfonns. {' · • LaHI Webforml.aspx source code - ,e,• Without XML Control r. _,,•-·.r,• :,-.. "Xlxxl ... . ..'.'./'!,'./ <%@ Page Language="C#" lnherits="Webform1" %> AutoEventWlreup="true" CodeFile="Webform1.aspx.cs"
  • 15. --- <html xmlns="http:/Jwww.w3.org/1999/xhtml"> <head n1nat='server"> <ti11e></title> </head> <bOdy> <form ld='form1' n1nat=·server"> <div> <table class='style1'> <td class='style3'> dvancad Wab Prograrnrn1ng <asp:Button ID='Button1' n1nat="server" Font-Bold="True" Font-Size="Larger" ForeColor-"#003366' Height="33px" onclick="Button1_Click" styte='font-weight: 700" Text="XML Display" /> <ltd> <td> <asp:Button ID="Button2" n1nat="server" Font-Bold="True" Font-Size="Larger" ForeColor-"#003366" Height="33px" onclick="Button2_(?1ick' styte='font-weight: 700" Text='Without XML Control "/> <ltd> </tr> <td class='style6"> <asp:Xml ID="Xml1" runat="server"></asp:Xml> <ltd> <td class='style5"> <asp:Label ID="Label1" runat='server" Font-Bold="True" Font-Size="Large" I Text='Label"></asp:Label> <ltd> </tr> </table> </div> </form> </body> </html>
  • 16. )(ML + C' 1,) ©"' [ XML Display I Webforml.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IQ; using System.Xml; using System.Xml.Schema; using System.Xml.XPath; using System.Xml.Xsl; using System.Web.UI; using System.Text; using System.Web.UI.WebControls; public partial class Webform1 : System.Web.UI.Page { [ Without XML Control ] Label protected void Page_Load(object sender, EventArgs e) { protected void Button1_Click(object sender, EventArgs e) { XmI1.Visible = true; Label1 .Visible =false; // This is being read from the same folder as this page is in.(only for demo purpose) // In real applications this xml might be coming from some external source or database. string xmlString = File.ReadAIIText(Server.MapPath("XMLFile.xml")); II Define the contents of the XML control Xm11.DocumentContent =xmlString; II Specify the XSL file to be used for transformation. 331
  • 17. DD &l¼i,H+MW?i+Wi,,hm! Xml1 .TransformSource =Server.MapPath("XSLTFile.xslt"); } protected void Button2_Click(object sender, EventArgs e) { Xml1.Visible =false; Label1.Visible =true; JI Getting file path string strXSLTFile =Server.MapPath("XSLTFile.xslt"); string strXMLFile =Server.MapPath("XMLFile.xml"); II Creating XSLCompiled object XslCompiledTransform objXSLTransform = new XslCompiledTransform(); objXSLTransform.Load(strXSLTFile); II Creating StringBuilder object to hold html data and creates TextWriter object to hold data f XslCompiled.Transform method rom StringBuilder htrnlOu1put = new StringBuilder(); TextWriter htrnlWriter =new StringWriter(htmlOutput); II Creating XmlReader object to read XML content XmlReader reader= XmlReader.Create(strXMLFile); II Call Transform() method to create html string and write in TextWriter object. objXSLTransform.Transform(reader, null, htmlWriter); Label1.Text =htmlOutput.ToString(); // Closing xmlreader object reader.Close(); ,
  • 18. XML 333 1oe.n,o,t:614Z/Wtblorm1/Weblorn X + © IOCalnost:t,l '1 ® <:! Q . .. . . - ~---- - - l~ ~ r.l""'.~;. -.m•,.,.-_ _ ¼ ~,..,-i;:.· _ . '""'- ..,,. t;.... ....- .,. .,_,," _ ... • 1 ·• '" [!<ML Display I , [Without_ XML Control Biriyani - $10.60 Rice with chicken650 (calories per serving) Juice - $4.20 i1 Frurt juices like mango, banana, apple200 (calories per serving) loc,lloldlW#mforfflVWcllfo.-,· )( I ~.: C! 0 ~- f.XMl.;J}i~play Biriyani - $10.60 Rlct with _151),_,,.,-inw Juice - $4.20 FrultjulCIO 11<,-.bo111111, oppllm/-por-'"11/ ll!l@ - ·:i .'-:e;-z~-:~::.~:-~--~~~:.t~:f1~~~#~:@-:ii~~>r -:~/-.,;-~-~·:_ J ·:}J~~fflffY~-:~·-·:· I. Explain xml with example. 2. Explain XML TextWriter with example. 3. Explain XML TextReader with example. 4. How to Reading an XML Document? Explain with example. 5. Explain XML Validation with proper example. 6. Explain XML Display and Transforms in asp.net with example.