XML syntax and examples

CDATA is "character data" and PCDATA is "parsed character data". [? Where did I borrow these examples from? Double check for correctness. Actually, this isn't even complete. ?] Note: Mozilla incorrectly strips <! and > angle brackets when in XMP block.

Default: <?xml version="1.0" standalone="no" encoding="UTF-8"?> Well-formed: <?xml version="1.0" standalone="yes"?> Valid: <?xml version="1.0" standalone="no"?>

1. XML document with inlined DTD.

<?XML VERSION = "1.0" ?> <!DOCTYPE FOOD [ <!ENTITY WD "WebDeveloper"> <!ELEMENT FOOD (FRUIT)*> <!ELEMENT FRUIT (ROUND)> <!ELEMENT ROUND (ORANGES,TANGERINES)> <!ELEMENT ORANGES (#PCDATA)> <!ELEMENT TANGERINES (#PCDATA)> ]> <FOOD> <FRUIT> <ROUND> <ORANGE>This is an orange.</ORANGE> <TANGERINE>This is a tangerine.</TANGERINE> </ROUND> </FRUIT> </FOOD>

2a. A tiny XML document with inlined DTD.

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]> <greeting>Hello, world!</greeting>

2b. Now referring to an external DTD.

<?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting>

3. XML document with inlined DTD defining attribute lists for its elements.

<?xml version="1.0" standalone="yes"?> <?xml-style href="quickmessage.xsl" type="text/xsl"?> <!ELEMENT message (to,text,from)> <!ATTLIST message stamp CDATA #REQUIRED> <!ELEMENT to (#PCDATA)> <!ATTLIST to address CDATA #REQUIRED> <!ELEMENT text (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ATTLIST from address CDATA #REQUIRED> <message stamp="1998-08-18T11:32:45.26+0000"> <to address="mike@foo.com">Mike</to> <text>Are you free for lunch at 1.00pm today?</text> <from address="pete@foo.com">Peter</from> </message>

4. Another.

<?xml version="1.0" standalone="no"?> <!DOCTYPE MEMO [ <!ELEMENT MEMO (TO,FROM,SUBJECT,BODY,SIGN)> <!ELEMENT TO (#PCDATA)> <!ELEMENT FROM (#PCDATA)> <!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT BODY (P+)> <!ELEMENT P (#PCDATA)> <!ELEMENT SIGN (#PCDATA)> ]> <MEMO> <TO>Tutorial Takers</TO> <FROM>Tutorial Writer</FROM> <SUBJECT>Your impressions</SUBJECT> <BODY> <P>The quick brown fox jumped over the lazy dog because the dog was covered in cheese sauce.</P> <P>Then the cheese sauce got up and chased the quick brown fox, and the dog was happy.</P> </BODY> </MEMO>

5. XML doc referring to an external DTD.

<?XML VERSION = "1.0" ?> <!DOCTYPE FOOD SYSTEM "food.dtd"> <library> <owner>J. Grubb Alexander</owner> <films> <film sound="no" year="1925">The Phantom of the Opera</film> <film sound="yes" year="1962">The Phantom of the Opera</film> <film sound="yes" year="1989">The Phantom of the Opera</film> <film sound="yes" year="1948">Rope</film> </films> </library>

6. A more complex DTD.

<?xml version="1.0" standalone="no"?> <!DOCTYPE NOVEL [ <!ELEMENT NOVEL (FORWORD,CHAPTER+,BIOGRAPHY?,CRITICALESSAY*)> <!ELEMENT FORWORD (PARAGRAPH+)> <!ELEMENT CHAPTER (SECTION+|PARAGRAPH+)> <!ELEMENT SECTION (PARAGRAPH+)> <!ELEMENT BIOGRAPHY(PARAGRAPH+)> <!ELEMENT CRITICALESSAY (SECTION+)> <!ELEMENT PARAGRAPH (#PCDATA)> <!ELEMENT SIGN (#PCDATA)> ]>