I was reading an ebook and it has following xml code.
<?xml version="1.0"?>
<?xml-stylesheet href="sonnet.xsl" type="text/xsl"?>
<?cocoon-process type="xslt"?>
<!DOCTYPE sonnet [
<!ELEMENT sonnet (auth:author, title, lines)>
<!ATTLIST sonnet public-domain CDATA "yes"
type (Shakespearean | Petrarchan) "Shakespearean">
<!ELEMENT auth:author (last-name,first-name,nationality,
year-of-birth?,year-of-death?)>
<!ELEMENT last-name (#PCDATA)>
<!ELEMENT first-name (#PCDATA)>
<!ELEMENT nationality (#PCDATA)>
<!ELEMENT year-of-birth (#PCDATA)>
<!ELEMENT year-of-death (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT lines (line,line,line,line,
line,line,line,line,line,line,line,
line,line,line)>
<!ELEMENT line (#PCDATA)>
]>
<!-- Default sonnet type is Shakespearean, the other allowable -->
<!-- type is "Petrarchan." -->
<sonnet type="Shakespearean">
<auth:author xmlns:auth="http://www.authors.com/">
<last-name>Shakespeare</last-name>
<first-name>William</first-name>
<nationality>British</nationality>
<year-of-birth>1564</year-of-birth>
<year-of-death>1616</year-of-death>
</auth:author>
<!-- Is there an official title for this sonnet? They're
sometimes named after the first line. -->
<title>Sonnet 130</title>
<lines>
<line>My mistress' eyes are nothing like the sun,</line>
<line>Coral is far more red than her lips red.</line>
<line>If snow be white, why then her breasts are dun,</line>
<line>If hairs be wires, black wires grow on her head.</line>
<line>I have seen roses damasked, red and white,</line>
<line>But no such roses see I in her cheeks.</line>
<line>And in some perfumes is there more delight</line>
<line>Than in the breath that from my mistress reeks.</line>
<line>I love to hear her speak, yet well I know</line>
<line>That music hath a far more pleasing sound.</line>
<line>I grant I never saw a goddess go,</line>
<line>My mistress when she walks, treads on the ground.</line>
<line>And yet, by Heaven, I think my love as rare</line>
<line>As any she belied with false compare.</line>
</lines>
</sonnet>
<!-- The title of Sting's 1987 album "Nothing like the sun" is -->
<!-- from line 1 of this sonnet.
problem is when I continue the rest of the reading I thought I have misunderstand what root element is. According to my knoweledge root node is <sonnet>
node.
But in the book I find next this
Unlike other nodes, the root node has no parent. It always has at least one child, the document element. The root node also contains comments or processing instructions that are outside the document element. In our sample document, the two processing instructions named xmlstylesheet and cocoon-process are both children of the root node, as are the comment that appears before the tag and the comment that appears after the tag.
accordning to that whole document is considered as root. If so what is ? It is clear that processing instructions and comments are not child of node.
do I minunderstand?
UPdate
<?xml version="1.0"?>
<Food>
<Cateogry> Vegetable</Cateogry>
<Cateogry> Fruits</Cateogry>
<Cateogry> other</Cateogry>
</Food>
what is the root element here? isnt it food?
While a properly formed XML file can only have a single root element, an XSD or DTD file can contain multiple roots.
XML documents must contain a root element (one that is the parent of all other elements). All elements in an XML document can contain sub elements, text and attributes. The tree represented by an XML document starts at the root element and branches to the lowest level of elements.
In the XML DOM, each node is an object. Objects have methods and properties, that can be accessed and manipulated by JavaScript.
The <schema> element is the root element of every XML Schema. The <schema> element may contain some attributes, but only the first attribute is mandatory.
The root node has no visual manifestation or textual representation. It is a conceptual node that contains everything else in the document. In the example of your document, it would be like this:
/ (root node)
|-- processing-instruction() xml-stylesheet
|-- processing-instruction() cocoon-process
|-- comment()
|-- comment()
|-- sonnet (document element)
|-- auth:author
|-- last-name
|-- ....
|-- comment()
|-- title
|-- lines
|-- line
|-- line
|-- ....
|-- comment()
|-- comment()
As shown here, the root node in your example has 2 processing instructions, 4 comments, and 1 element as children.
This single child element (sonnet) is what's called the "document element". It's also sometimes called the "root element", but many people like to avoid this term to minimize confusion with the "root node", since they are two completely separate things.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With