27
Chapter 2: Well-Formed XML

Chapter 2: Well-Formed XML

  • Upload
    yoland

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

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 How to declare your document as being XML How to send instructions to applications that are processing the XML document - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 2: Well-Formed XML

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

• 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

Parsing XML

Page 4: Chapter 2: Well-Formed XML

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

Try It Out

Creating a Distribution Process

Page 6: Chapter 2: Well-Formed XML

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

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

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

Rules for Elements

These are two different elements

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

Page 10: Chapter 2: Well-Formed XML

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

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

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

Attributes

<name nickname=“Shiny John”>

<first>John</first>

<middle>Fitzgerald Johansen</middle>

<last>Doe</last>

</name>

Page 14: Chapter 2: Well-Formed XML

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

Try It Out

Adding Attributes to Our Orders

Page 16: Chapter 2: Well-Formed XML

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

Try It Out

Some Comments on Orders

Page 18: Chapter 2: Well-Formed XML

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

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

Try It Out

Declaring Our Orders to the World

Page 21: Chapter 2: Well-Formed XML

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

Illegal PCDATA Characters

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

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

Page 23: Chapter 2: Well-Formed XML

Escaping Characters

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

Page 24: Chapter 2: Well-Formed XML

CDATA Sections

<script language=‘JavaScript’>

<![CDATA[

function myFunc()

{

if(0 < 1 && 1 < 2)

alert(“Hello”);

}

]]>

</script>

Page 25: Chapter 2: Well-Formed XML

Try It Out

Talking about HTML in XML

Page 26: Chapter 2: Well-Formed XML

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

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