Skip to main content

XML, XSLT info by pran sukh on Python Hunter blog.

What is XML?

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.


XML:-
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version="1.0" encoding="UTF-8"?> 


<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>



A prolog defines the XML version and the character encoding: xml document can contain international characters like norwegian øæå or French êèé. To avoid errors, you should specify the encoding used, or save xml file as UTF-8, which is default character encoding for XML documents.
XML tags are cases sensitive

In the above example:- 
bookstore is root element.
book is child element and category is attribute and cooking is attribute value, NOTE:- attribute values must be Quoted.

title is child element of bookstore and book and lang is attribute and en attribute value.

Some characters have special meaning in xml like '<'
but you want to use like 

1
2
3
4
5
<msg> salary < 1000 </msg>

to avoid the error replace the "<" with entity reference:

<msg> salary &lt; 1000 </msg>

&lt; < less than
&gt; > greater than
&amp; & ampersand 
&apos; ' apostrophe
&quot; " quotation mark

Self closing tags 

<element attribute="value"/> 
                  and 
<element attribute="value"></element>

produces the same result.

Elements names are Case-sensitive, must start with letter or _ , can not start with xml, can contain letter, digits, -, _, dots but no spaces.


but, as best prectice avoid - and dots ....

######### NameSpace ##########

NameSpaces are declared in xml to avoid confusion among predefined xml/html tags and user defined tags.

1
2
3
4
5
6
7
8
<root xmlns:h="http://www.w3.org/TR/html4/">

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

or you can define the xmlns here in the element itself. now this table tag will be used as piece of furniture.

1
2
3
4
5
<table xmlns="https://www.MySite.com/furniture"> 
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

Post by post you will learn the inner XML and XLST Tags, their usage and working and beautify the xml data presentation with use of XSLT.

Thanks.

NEXT:- <apply-template> (click)

Bonus Tip:- If you are getting following issue while starting Tomcat server
Issue:-
1
2
SEVERE: Unable to process Jar entry [module-info.class] from Jar [file:/E:/PARAMLunaWorkSpace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/RestWithJerrsy/WEB-INF/lib/yasson-1.0.jar] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19

All you have to do is skip the scanning of following jar files, for that make the following changes to your context.xml file of apache tomcat location:- apacheHome/conf/context.xml

1
2
3
4
5
6
7
8
9
<JarScanner>

<JarScanFilter pluggabilitySkip="${tomcat.util.scan.StandardJarScanFilter.jarsToSkip}, 
javax.json-api-1.1.jar,
javax.json.bind-api-1.0.jar,
javax.json-1.1.jar,
yasson-1.0.jar" />

</JarScanner>

Comments

Popular posts from this blog

Understanding the usage of underscore( _ ) of Python for beginner. On Python Hunter

Introduction: Just like you, a newbie in python scripting language, me too was confused about lot of new things in python that are not valid or available in other languages like Java, .Net etc. Just like other things i had seen the use of '_' underscore in python, at beginning level that flabbergasted me for a while.      With some research and practice i have summarised the following usage of '_' underscore in python. Hope you will find it helpful at beginning level. First Usage : Hold the previous output value. When used in interpreter. 1 2 3 4 5 6 7 _ = input () # For example you typed '5' print (_) # This will print '5' print ( int ( _ ) * int ( _ ) ) # This will print '25' print ( int ( _ ) + 10 ) The above will print '15', because last input was "5" and in above   line of code is producing '25' as output but not being handl...

regex in python python hunter

Regular Expressions is a powerful concept if understood clearly you can save your valuable time to extract out the particular text from huge string or paragraph. It is wildly pronounced as regex, it can help you to automate the boring stuff, like searching particular text form log files, python used this same concept in web scrapping. Below are some common examples to understand the regex. Method names will help you to have an idea that what exactly the regex is intended to do. if you don't understand any regex or want to create your own regex with your requirements then you can comment below, i'll reach you ASAP. Thanks. import re def phoneNumberPattern (): print ( "*" * 10 ) print ( "phoneNumberPattern()" ) regexObj = re . compile( r'\d\d\d-\d\d\d-\d\d\d\d' ) mo = regexObj . search( 'Find my phone number from this string 998-805-4332' ) print (mo . group()) def grouping (): print ( "*...

XSLT applyTemeplate tag by pran sukh on Python Hunter.

XSLT is used for presenting XML data in well structured way and in eye appealing sense. In XSLT we can define different templates and maintain criteria for XSLT processor to parse the XML data in and apply different template for different XML tags. Lets examine following example XML DATA. 1 2 3 4 5 6 7 8 9 10 <student id= "1" eCode= "e1" > <firstName> Python 1 </firstName> <lastName> Hunert 1 </lastName> <dob> <day> 01 </day> <month> Jan </month> <year> 1991 </year> </dob> <course> Programmer </course> </student> In above XML data we want to present student id with dark background and eCode with red background colors, First Name in blue color, last name in green color and date of birth in different modes, so it will look like this. Source File:- XML_DATA.xml 1 2 3 4 5 6 7 8 9 10 ...