XML

Originally Posted By myself on 1/17/2016 at http://rchannel.azurewebsites.net/ChannelR/Details/9

BEGIN YOUR JOURNEY TO THE XML WORLD WITH ROOT, ATTRIBUTES, NAMESPACES AND MANY MORE.

PREREQUISITES


A. WHAT IS XML?

  • XML stands for eXtensible Markup Language.
  • XML is a tag-based syntax like HTML <h1> </h1>, however you can create your own tags.
  • XML is used to structure and describe information.

B. XML TREES

A simple XML tree has a root and an element.

Example of a simple XML document.

1. In Notepad ++, type:

<store>
<product>

PS4
</product>
</store>

<store> ... </store> ----> Root element
<product> ...</product> ----> Element within the root element

2. Save the document as Product.xml.

3. Run the document in the web browser.

Result:

Lets at a slightly more complex XML tree.

1. Type:

<Food>

<Fruits>

<Fruit1>
Coconut
</Fruit1>

<Fruit2>
PineApple
</Fruit2>

</Fruits>

</Food>

<Food> ... </Food> ----> Root element; enclosing all other elements

<Fruits>...</Fruits> ----> Child of root element Food

<Fruit1> ... </Fruit1> ----> Subchild of the root element Food

<Fruit2> ... </Fruit2> ----> Subchild of the root element Food

2. Save as Food.xml

2. Run in the web browser.

Result:

Now lets look at a XML tree having attributes:

  • When coding in HTML we can add attributes to tags to style them. However in XML attributes are used to differentiate information as shown in the example below.
  • Also XML attributes are often use as metadata (information describing other information); for example order IDs.

1. Type:

<store>

<Game category="PS4">
<Title>
Driveclub
</Title>
</Game>

<Game category="Xbox One">
<Title>
Froza Horizon 2
</Title>
</Game>

</store>

category="PS4" ----> attribute
category="Xbox One" ----> attribute

2. Save as Store.xml.

2. Run in the web browser.

Result:


C. RULES

XML elements:

  • requires an openning and a closing tag <...> </...>
  • are case sentitive. <A>...</A> is different from <a>...</a>
  • requires proper nesting as show below.

Correct nesting
<a>
<b>...</b> 
<a>

Incorrect nesting
<a>
<b>...</a>
</b>

XML attributes values requires quoting "PS4". <game category="PS4">...</game>


D. XML COMMENTS

Creating XML comments is fairly simple as shown below.

<!-- Hello World -->

<!-- -----> Start of the comment.

Hello World ----> Comment

--> ----> End of the comment.


E. NAMESPACES

  • Conflicts occur when your using 2 XML document with similar tags. To avoid conflicts we use prefixes. In order to use a prefix in XML, we need to define a namespace for the prefix.
  • The xmlns attribute is utilize to define a prefix as shown below.
  • A uniform resource indicator URI is used when defining a namespace. You can learn more about URI using the following link: http://searchsoa.techtarget.com/definition/URI

<root>

<f:table xmlns:f="FruitsURI">
 <f:tr>
 <f:td>Coconuts</f:td>
 </f:tr>
</f:table>

<f: ----> Applying the prefix.

xmlns:f="Fruitsurl" ----> Defining a unique namespace; example a specific url for that prefix "f".

<v:table xmlns:v="Vegitablesurl">
 <v:name>Carrots</v:name>
</v:table>

xmlns:v="Vegitablesurl" ----> A different prefix used for a different kind of information.

</root>