<?xml version=”1.0”?> <Root> <ChildElement1 /> <ChildElement2 /> </Root> This should look very familiar to anyone who has coded HTML. The <Root> ele- ment looks like a <UL> tag, and child elements look like <LI> tags. There is a key dif- ference, though. If you look at the child elements, you’ll notice that the tag ends with />. This is required in XML so that the parser knows that this element has no children. The preceding example represents the three tag types in XML: (1) the start tag, (2) the end tag, and (3) the empty element tag. Table 1.1 documents the syntax of these tags. In the “Form” column, the unique syntax requirements for each type of tag are documented. There are also common syntactical requirements that apply to all tags. As you would expect, start and end tags must be properly nested. A child element must be entirely contained within its parent’s start and end tags. The following exam- ple demonstrates bad and illegal nesting: <?xml version=”1.0” ?> <Root> <Troublemaker> </Root> </Troublemaker> Our last structural consideration involves our children elements. In our previous example, there were only two children elements, and each had a different name. This isn’t a requirement. You can have many children with the same name. For instance, the XML returned from the database by Oracle will have as many row child elements as there are rows in the result set. Our final example is of a valid document with multiple elements of the same name. Just for fun, this example is also more deeply nested. <?xml version=”1.0” ?> <Root> <FirstLevelChild> <SecondLevelChild/> </FirstLevelChild> <RedHeadedStepChild /> <FirstLevelChild /> <FirstLevelChild> <GrandchildOfRoot> <KidsTheseDays /> </GrandchildOfRoot> </FirstLevelChild> </Root> 16 Chapter 1 271209 Ch01.F  12/9/02  2:00 PM  Page 16