w3pop.com :: ÍøÂçѧԺ :: XML :: XML Óï·¨¹æÔò
The syntax rules of XML are very simple and very strict. The rules are very easy to learn, and very easy to use.
XMLµÄÓï·¨¹æÔò·Ç³£¼òµ¥£¬Í¬Ê±Ò²ÊǷdz£ÑϸñµÄ£»ËüÒ×ÓÚѧϰ£¬Ò×ÓÚʹÓá£
Because of this, creating software that can read and manipulate XML is very easy.
Òò´Ë£¬¿ª·¢Äܹ»Ê¶±ðºÍ´¦ÀíXMLµÄÈí¼þÒ²ÊǷdz£ÈÝÒ׵ġ£
XML documents use a self-describing and simple syntax.
XMLÎĵµÊ¹ÓÃ×ÔÊöʽÓï·¨£¬²¢ÇÒ£¬Óï·¨¹æÔò·Ç³£¼òµ¥¡£
<?xml version="1.0" encoding="ISO-8859-1"?> |
The first line in the document - the XML declaration - defines the XML version and the character encoding used in the document. In this case the document conforms to the 1.0 specification of XML and uses the ISO-8859-1 (Latin-1/West European) character set.
ÎĵµµÄµÚÒ»ÐÐ —— XMLÉùÃ÷ —— ¶¨ÒåXMLµÄ°æ±¾ºÍÎĵµËùʹÓõÄ×ÖÌå±àÂ룬ÔÚÕâ¸ö°¸Àýµ±ÖУ¬ÎĵµÊ¹ÓõÄÊÇXML1.0¹æ·¶£¬×ÖÌåÉèÖÃÊÇISO-8859-1 (Latin-1 / West European[Î÷Å·×ÖÌå])
The next line describes the root element of the document (like it was saying: "this document is a note"):
µÚ¶þÐÐÃèÊöÁËÎĵµµÄ¸ùÔªËØ (ÈçͬËüËù˵µÄÄÇÑù£º"this document is a note")£º
<note> |
The next 4 lines describe 4 child elements of the root (to, from, heading, and body):
½ÓÏÂÀ´µÄ4ÐÐÃèÊöÁ˸ùÔªËØµÄ4¸ö×ÓÔªËØ (to¡¢from¡¢heading ºÍ body)£º
<to>Tove</to> |
And finally the last line defines the end of the root element:
×îºóÒ»Ðж¨ÒåÁ˸ùÔªËØµÄ½áÊø±êÇ©£º
</note> |
Can you detect from this example that the XML document contains a Note to Tove from Jani? Don't you agree that XML is pretty self-descriptive?
ÄãÄÜ´ÓÕâ¸ö°¸ÀýÖз¢ÏÖÕâ·ÝXMLÎĵµ°üº¬ÁËÒ»¸ö Jani ·¢¸ø Tove µÄÐÅÏ¢Âð? ÄѵÀÄã²»ÔÞͬXMLÊǷdz£¾ßÓÐ×ÔÎÒÃèÊöÐÔÖʵÄÓïÑÔÂð?
With XML, it is illegal to omit the closing tag.
ÔÚXMLÖУ¬Ê¡ÂÔ½áÊø±êÇ©ÊDz»ÕýÈ·µÄ¡£
In HTML some elements do not have to have a closing tag. The following code is legal in HTML:
ÔÚHTMLÖУ¬Ò»Ð©ÔªËز¢²»Ò»¶¨°üº¬½áÊø±êÇ©¡£ÏÂÃæµÄ´úÂëÔÚHTMLÖÐÊǺϷ¨µÄ£º
<p>This is a paragraph
<p>This is another paragraph
In XML all elements must have a closing tag, like this:
ÔÚXMLÖУ¬ËùÓеÄÔªËØ¶¼±ØÐë°üº¬Ò»¸ö½áÊø±êÇ©£¬ÈçÏÂËùʾ£º
<p>This is a paragraph</p>
<p>This is another paragraph</p>
Note: You might have noticed from the previous example that the XML declaration did not have a closing tag. This is not an error. The declaration is not a part of the XML document itself. It is not an XML element, and it should not have a closing tag.
×¢Ò⣺ҲÐíÄãÔÚÇ°ÃæµÄ°¸ÀýÖÐÒѾעÒâµ½£¬XMLÉùÃ÷²¢Ã»Óаüº¬½áÊø±êÇ©¡£Õâ²¢²»ÊǸö´íÎó¡£ÉùÃ÷²¢²»ÊÇXMLÎĵµ±¾ÉíµÄÒ»²¿·Ö£¬ËüÒ²²»ÊÇÒ»¸öXMLÔªËØ£¬ËùÒÔËü²¢²»ÐèÒª°üº¬½áÊø±êÇ©¡£
XML Tags are Case Sensitive
XML±êÇ©ÊÇÇø·Ö×Öĸ´óСдµÄ
Unlike HTML, XML tags are case sensitive.
ÓëHTML²»Í¬µÄÊÇ£¬XML±êÇ©ÊÇÇø·Ö×Öĸ´óСдµÄ¡£
With XML, the tag <Letter> is different from the tag <letter>.
ÔÚXMLÖÐ,±êÇ©<Letter>ºÍ<letter>ÊDz»Í¬µÄ¡£
Opening and closing tags must therefore be written with the same case:
Òò´Ë£¬¿ªÊ¼±êÇ©Óë½áÊø±êÇ©±ØÐëÒ»ÂÉÓÃÏàͬµÄ´óд×Öĸ»òÏàͬµÄСд×ÖĸÊéд£º
<Message>This is incorrect</message>
<message>This is correct</message>
XML Elements Must be Properly Nested
XMLÔªËØ±ØÐëºÏÀíǶÌ×
Improper nesting of tags makes no sense to XML.
²»ºÏÀíµÄ±êǩǶÌ×¶ÔXMLÀ´ËµºÁÎÞÒâÒå¡£
In HTML some elements can be improperly nested within each other like this:
ÔÚHTMLÖУ¬Ä³Ð©ÔªËØÏ໥֮¼ä¿ÉÒÔ²»±»ºÏÀíÇ·Ì×£¬¾ÍÏñÏÂÃæÕâÑù£º
<b><i>This text is bold and italic</b></i>
In XML all elements must be properly nested within each other like this:
ÔÚXMLÖУ¬ËùÓÐÔªËØ¶¼±ØÐëÏñÕâÑù±»ºÏÀíµÄǶÌ×£º
<b><i>This text is bold and italic</i></b>
XML Documents Must Have a Root Element
XMLÎĵµ±ØÐëÓÐÒ»¸ö¸ùÔªËØ
All XML documents must contain a single tag pair to define a root element.
ËùÓеÄXMLÎĵµ±ØÐë°üº¬Ò»¶Ôµ¥Ò»µÄ±êÇ©À´¶¨ÒåÒ»¸ö¸ùÔªËØ¡£
All other elements must be within this root element.
ËùÓÐÆäËüµÄÔªËØ±ØÐë°üº¬ÔÚÕâ¸ö¸ùÔªËØÖС£
All elements can have sub elements (child elements). Sub elements must be correctly nested within their parent element:
ËùÓÐÔªËØ¶¼¿ÉÒÔÓи±ÔªËØ(×ÓÔªËØ)¡£¸±ÔªËرØÐëÔÚËüÃǵĸ¸ÔªËØÀïÕýÈ·µØÇ¶Ì×£º
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
XML Attribute Values Must be Quoted
XMLÊôÐÔÖµ±ØÐë±»ÒýºÅ±êʾ
With XML, it is illegal to omit quotation marks around attribute values.
XMLÖУ¬Ê¡ÂÔÊôÐÔÖµÍâÃæµÄÒýºÅÊDz»ÕýÈ·µÄ¡£
XML elements can have attributes in name/value pairs just like in HTML. In XML the attribute value must always be quoted. Study the two XML documents below. The first one is incorrect, the second is correct:
ÈçͬHTMLÒ»Ñù£¬XMLÔªËØ¿ÉÒÔʹÓðüº¬ “Ãû³Æ / Öµ” ÕâÑù³É¶Ô³öÏÖµÄÊôÐÔÖµ¡£ÔÚXMLÀÊôÐÔÖµ±ØÐëдÔÚÒýºÅÀï¡£¿´¿´ÏÂÃæÕâÁ½¸öXMLÎĵµ£ºµÚÒ»¸öÊÇ´íÎóµÄ£»µÚ¶þ¸öÊÇÕýÈ·µÄ£º
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date=12/11/2002>
<to>Tove</to>
<from>Jani</from>
</note>
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
</note>
The error in the first document is that the date attribute in the note element is not quoted.
µÚÒ»·ÝÎĵµµÄ´íÎóÊÇnoteÔªËØÀïµÄÈÕÆÚÊôÐÔ²¢Î´±»Ð´ÔÚÒýºÅÀï¡£
This is correct: date="12/11/2002". This is incorrect: date=12/11/2002.
ÕâÑùÊéдÊÇÕýÈ·µÄ£ºdate="12/11/2002"£»ÕâÑùÊéдÊÇ´íÎóµÄ: date=12/11/2002¡£
With XML, White Space is Preserved
ÔÚ XMLÀï,¿Õ¸ñÊDZ»±£ÁôµÄ.
With XML, the white space in your document is not truncated.
ÔÚXMLÀÎĵµÖеĿոñÊDz»»á±»É¾³ýµÄ¡£
This is unlike HTML. With HTML, a sentence like this:
ÕâµãºÍHTML²»Í¬¡£ÔÚHTMLÖУ¬ÏñÏÂÃæÕâÑùµÄ¾ä×Ó£º
Hello my name is Tove,
will be displayed like this:
»á±»ÏÔʾ³ÉÕâÑù:
Hello my name is Tove,
because HTML reduces multiple, consecutive white space characters to a single white space.
ÒòΪHTML»áËõ¼õ¿Õ¸ñ±¶Êý£¬Á¬ÐøµÄ¿Õ¸ñ×Ö·û»á±»¼õÉÙΪһ¸ö¿Õ¸ñ·û¡£
With XML, CR / LF is Converted to LF
ÔÚXMLÖÐ, CR / LF »á±»ÐÞ¸ÄΪ LF
With XML, a new line is always stored as LF.
ÔÚXMLÖÐ,еÄÒ»Ðлá×÷ΪLF´¢´æÆðÀ´.
Do you know what a typewriter is? Well, a typewriter is a mechanical device which was used last century to produce printed documents. :-)
ÄãÖªµÀʲôÊÇ´ò×Ö»úÂ𣿴ò×Ö»úÊÇÉÏÊÀ¼ÍÓÃÓÚ´òÓ¡ÎļþµÄ»úÆ÷×°Öá£
After you have typed one line of text on a typewriter, you have to manually return the printing carriage to the left margin position and manually feed the paper up one line.
ÔÚ´ò×Ö»úÉÏ´òÍêÒ»ÐÐÎı¾ºó,ÄãµÃÊÖ¶¯µØ°Ñ´òÓ¡¼ÜÍÆ»Ø×ó±ßµÄÒ³Ãæ¿Õ°×´¦£¬²¢ÇÒ°ÑÖ½µ÷¸ßÒ»ÐС£
In Windows applications, a new line is normally stored as a pair of characters: carriage return (CR) and line feed (LF). The character pair bears some resemblance to the typewriter actions of setting a new line. In Unix applications, a new line is normally stored as a LF character. Macintosh applications use only a CR character to store a new line.
ÔÚWindowsÓ¦ÓÃÈí¼þÖУ¬ÐµÄÒ»ÐÐͨ³£±»´¢´æÎªÒ»¶Ô×Ö·û£º´òÓ¡¼ÜÍÆ»Ø(carriage return ¼ò³ÆCR)£¬ÐÂÐв¹¸ø(line feed¼ò³Æ LF)¡£ÉèÖÃ×Ö·û¶ÔÓë´òÓ¡»úÉèÖÃÐÂÐÐʱµÄһϵÁж¯×÷ÓÐÏàËÆÖ®´¦¡£ÔÚUnixÓ¦ÓÃÈí¼þÖУ¬ÐÂÐÐͨ³£±»´¢´æÎª”LF”×Ö·û£¬Æ»¹û»ú[Macintosh]Ó¦ÓÃÈí¼þֻʹÓÔCR” ×Ö·ûÀ´´¢´æÐÂÐС£
Comments in XML
XMLÖеÄ×¢ÊÍ
The syntax for writing comments in XML is similar to that of HTML. <!-- This is a comment -->
XML×¢Ê͵Äд·¨ºÍHTMLÀàËÆ
There is Nothing Special About XML
XML²¢Ã»ÓÐÊ²Ã´ÌØ±ðÖ®´¦
There is nothing special about XML. It is just plain text with the addition of some XML tags enclosed in angle brackets.
XML²¢Ã»ÓÐÊ²Ã´ÌØ±ðÖ®´¦£¬ËüÖ»ÊÇÆÕͨÎı¾£¬´ËÍ⣬»¹°üº¬Ò»Ð©±»¹ØÔÚ¶Ô½ÇÐÍÀ¨ºÅÄÚµÄXML±êÇ©¡£
Software that can handle plain text can also handle XML. In a simple text editor, the XML tags will be visible and will not be handled specially.
ÄÜ´¦ÀíÆÕͨÎı¾µÄÈí¼þͬÑùÄÜ´¦ÀíXMLÎļþ¡£ÔÚÒ»¸ö¼òÒ×µÄÎı¾±à¼Æ÷ÀXML±êÇ©ÊǿɼûµÄ£¬¶øÇÒ²»»á±»ÌØÊâ´¦Àí¡£
In an XML-aware application however, the XML tags can be handled specially. The tags may or may not be visible, or have a functional meaning, depending on the nature of the application.
È»¶ø£¬ÔÚÄÜʶ±ðXMLµÄÓ¦ÓÃÈí¼þÀXML±êÇ©ÊÇ¿ÉÒÔ±»ÌØÊâ´¦ÀíµÄ¡£±êÇ©¿ÉÒÔÊǿɼûµÄ£¬Ò²¿ÉÒÔÊDz»¿É¼ûµÄ£»»òÕß°üº¬Ò»ÖÖ¹¦ÄÜÐԵĺ¯Ò壬ÕâµÃÈ¡¾öÓÚÓ¦ÓÃÈí¼þ±¾ÉíµÄÌØÐÔ¡£