chapter 2: well-formed xml. chapter 2 objectives how to create sml elements using start- tags and...

27
Chapter 2: Well-Formed XML

Upload: nicholas-price

Post on 05-Jan-2016

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Chapter 2: Well-Formed XML

Page 2: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Chapter 2 Objectives

• How to create SML elements using start-tags and end-tags

• How to further describe elements with attributes

• How to declare your document as being XML

• How to send instructions to applications that are processing the XML document

• Which characters aren’t allowed in XML – and how to use them in your documents anyway!

Page 3: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Parsing XML

Page 4: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Tags and Text and Elements,Oh My!

<name>

<first>John</first>

<middle>Fitzgerald Johanson</middle>

<last>Doe</last>

• <first> is a start-tag• </first> is and end-tag• <first>John</first> is an element

Page 5: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Try It Out

Creating a Distribution Process

Page 6: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Rules for Elements

❑Every start-tag must have a matching end-tag, or be a self-closing tag.

❑Tags can’t overlap; elements must be properly nested.

❑XML documents can have only one root element.

❑Element names must obey XML naming conventions.

❑XML is case sensitive. XML will keep whitespace in your ❑PCDATA.

Page 7: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Rules for Elements

Bad Example

<name>John</name>

<name>Jane</name>

Good Example

<names>

<name>John</name>

<name>Jane</name>

</names>

Page 8: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Rules for Elements

• Names can start with letters, no numbers• After first character, numbers, hyphens

and periods are allowed• Names can’t contain spaces• There are reserved characters like “:”• Names can’t start with the letters “xml”,

“XML”, or “Xml”, or any other combination• No spaces after the “<“, but before the “>”

if desired

Page 9: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Rules for Elements

These are two different elements

<name>John</name><NAME>John</NAME>

Page 10: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Rules for Elements

Whitespace stripping takes place in HTML…<P>This is a paragraph. &nbsp;&nbsp;&nbsp;&nbsp;It has a whole bunch<BR>&nbsp;&nbsp;of space.</P>

…but not in XML

Example<tag>This is a paragraph. It has a whole

Bunch of space.</tag>

This is a paragraph. It has a whole

Bunch of space.

Page 11: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Rules for Elements

• Windows uses both the line feed and the carriage return

• UNIX uses only line feed• XML parsers will convert all Windows “line feed

and carriage returns” to just line feed characters to standardize end-of-line logic

Page 12: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Rules for Elements

<Tag>

<AnotherTag>This is some XML</AnotherTag>

</Tag>

This is known as extraneous whitespace in the markup.

Page 13: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Attributes

<name nickname=“Shiny John”>

<first>John</first>

<middle>Fitzgerald Johansen</middle>

<last>Doe</last>

</name>

Page 14: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Why use attributes• There is nothing that an attribute can

do that an element can’t, but not vice-versa

• They can be handy for “meta” data• Suppose you wanted to include the

number of individual orders?

• They are smaller than elements, but

• Attributes are unordered

• Some people just like them

Page 15: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Try It Out

Adding Attributes to Our Orders

Page 16: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Comments

<name nickname=‘Shiny John’> <first>John</first><!--John lost his middle name in a fire--> <middle></middle> <last>Doe</last></name>

Page 17: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Try It Out

Some Comments on Orders

Page 18: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Empty Elements

<name nickname=‘Shiny John’> <first>John</first> <!--John lost his middle name in a fire--> <middle></middle> <last>Doe</last></name>

<middle/>

Page 19: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

XML Declaration

<?xml version=‘1.0’ encoding=‘UTF-16’ standalone=‘yes’?><name nickname=‘Shiny John’> <first>John</first> <!--John lost his middle name in a fire--> <middle/> <last>Doe</last></name>

Page 20: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Try It Out

Declaring Our Orders to the World

Page 21: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Processing Instructions

<?xml version=‘1.0’?><name nickname=‘Shiny John’> <first>John</first> <!--John lost his middle name in a fire--> <middle/> <?nameprocessor SELECT * FROM blah?> <last>Doe</last></name>

Page 22: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Illegal PCDATA Characters

<!--This is not well-formed XML!-->

<comparison>6 is < 7 & 7 > 6</comparison>

Page 23: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Escaping Characters

<comparison>6 is &lt; 7 &amp; 7 &gt; 6 </comparison>

Page 24: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

CDATA Sections

<script language=‘JavaScript’>

<![CDATA[

function myFunc()

{

if(0 < 1 && 1 < 2)

alert(“Hello”);

}

]]>

</script>

Page 25: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Try It Out

Talking about HTML in XML

Page 26: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Errors in XML

• Errors

•Violations

•May recover

•Continue processing

• Fatal errors

•Draconian error handling

•Not allowed to continue

Page 27: Chapter 2: Well-Formed XML. Chapter 2 Objectives How to create SML elements using start- tags and end-tags How to further describe elements with attributes

Try It Out

•Adding Attributes to Our Orders•Some Comments to Our Orders•Declaring Our Orders To The World•An Order To Be Processes•Talking About HTML in XML