Home > Articles > Web Services > XML

This chapter is from the book

Workshop

This workshop tests whether you understand the concepts discussed today. It's a good idea to make sure you can answer these questions before pressing on to tomorrow's work. Answers to the quiz can be found in Appendix A, "Quiz Answers."

Quiz

  1. What's wrong with this XML document?

  2. <?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
    <!DOCTYPE document [ 
    <!ELEMENT document (employee)*> 
    <!ELEMENT employee (hiredate, name)> 
    ]> 
    <document>
      <employee>
        <hiredate>October 15, 2005</hiredate>
        <name>
          Grace Kelly
        </name>
      </employee>
    </document>
  3. Where do you see a problem with this XML document?

  4. <?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
    <!DOCTYPE document [ 
    <!ELEMENT document (employee)*> 
    <!ELEMENT employee (name, hiredate)> 
    <!ELEMENT name (#PCDATA)> 
    <!ELEMENT hiredate (#PCDATA)> 
    ]> 
    <document>
      <employee>
        <hiredate>October 15, 2005</hiredate>
        <name>
          Grace Kelly
        </name>
      </employee>
    </document>
  5. What error is in this XML document?

  6. <?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
    <!DOCTYPE document [ 
    <!ELEMENT document (employee)*> 
    <!ELEMENT employee (hiredate+ | name+)> 
    <!ELEMENT hiredate (#PCDATA)> 
    <!ELEMENT name (#PCDATA)> 
    ]> 
    <document>
      <employee>
        <hiredate>October 15, 2005</hiredate>
        <name>
          Grace Kelly
        </name>
      </employee>
    </document>
  7. There's a problem in this XML document, too. What is it?

  8. <?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
    <!DOCTYPE document [ 
    <!ELEMENT document (employee)?> 
    <!ELEMENT employee (hiredate+, name*, phone+)> 
    <!ELEMENT hiredate (#PCDATA)> 
    <!ELEMENT name (#PCDATA)> 
    <!ELEMENT phone (#PCDATA)> 
    ]> 
    <document>
      <employee>
        <hiredate>October 15, 2005</hiredate>
        <name>
          Grace Kelly
        </name>
        <phone>
          555.8888
        </phone>
      </employee>
      <employee>
        <hiredate>October 16, 2005</hiredate>
        <name>
          Myrna Loy
        </name>
        <name>
          Muriel Blandings
        </name>
        <phone>
          555.9999
        </phone>
      </employee>
    </document>
  9. What's wrong with this XML document?

  10. <?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
    <!DOCTYPE document SYSTEM "employee.dtd"> 
    <document>
      <employee>
        <name>
          Grace Kelly
        </name>
        <hiredate>October 15, 2005</hiredate>
      </employee>
    </document>

Exercises

  1. Create a new XML document that holds the names of your relatives by using elements such as <brother>, <sister>, <mother>, and <father>, as well as <name>, <age>, and <address> elements. Next, add a DTD to the document and use an XML validator such as the Scholarly Technology Group's XML validator, at http://www.stg.brown.edu/service/xmlvalid, to check whether your document is valid. Alternatively, add to the well-formed XML document you created in Exercise 1 at the end of yesterday's discussion a DTD that holds the available menu items and their prices at a favorite restaurant of yours.

  2. Convert the XML document you created in Exercise 1 to make the DTD external. If you can upload the external DTD file to a Web server and include its URI in the <!DOCTYPE> element (for example, <!DOCTYPE document SYSTEM "http://www.server.com/username/relatives.dtd">), use an online XML validator such as the Scholarly Technology Group's XML validator to check the new document's validity.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.