实体
有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符&、<、>、"和'被分别表示为&、@lt;、>、"和'。
XML很大程度上扩展了实体的功能 - 允许在DTD中定义实体以便在文档的其余部分使用。例如,我在XML文档中需要频繁使用词组"Wired Digital",可以在DTD中这样表示:
<!ENTITY wd "Wired Digital">
这样当我使用这个词组时,可以敲入&wd;。于是可以避免拼错和重复敲入相同的信息。实体可以起到字处理器中宏的作用。
被替换的文本可以任意长,但是如果真是很长,可能要把信息存储在另一个文件中。可以通过外部实体参考来实现 - 在实体名和文件的URL中使用关键字SYSTEM:
<!ENTITY text SYSTEM "http://my.url.here">
这些特征功能强大,但有一个缺点:在一个DTD内不能被扩展。为了实现扩展功能,需要一个称为参数实体的特殊工具。它在实体定义中通过在实体名前插入"%"实现。一旦被定义,参数定义可以通过用百分号和分号包围参数名来实现。
为什么这么做?看看下面的代码:
<!ELEMENT vCard (%prop.man;, (%prop.id; | %prop.del; |
%prop.tel; | %prop.geo; | %prop.org; |
%prop.exp; | %prop.sec;)*)>
这段代码来自一个公用的XML名片草稿。当定义根元素时,作者发现更容易把信息分离到不同的参数实体中。如果看看其中的一个实体表现,我们就会知道为什么了。看看下面的prop.id实体:
<!ENTITY % prop.id "
(nickname | photo | bday)">
如果每个实体都用这么长的字符串表示,元素定义将很难阅读。
现在可以读一些DTD了。
Jay Greenspan ISO-8859-1 Entities Named Entity Numeric Entity Glyph Description �- unused horizontaltab linefeed unused space ! ! exclamationmark " " " doublequotationmark # # numbersign $ $ dollarsign % % percentsign & & & amperstand ' ' apostrophe ( ( leftparenthesis ) ) rightparenthesis * * asterisk + + plussign , , comma - - hyphen . . period(fullstop)
Named Entity Numeric Entity Glyph Description
/ / solidus(slash) 0- 9 digits0-9 : : colon ; ; semicolon < < < less-thansign = = equalssign > > > greater-thansign ? ? questionmark @ @ commercialat A- Z letters A-Z [ ][ leftsquarebracket \ \ reversesolidus(backslash) ] ] rightsquarebracket ^ ^ caret _ _ horizontalbar(underscore) ` ` acuteaccent a- z letters a-z { { leftcurlybrace | | verticalbar
Named Entity Numeric Entity Glyph Description } } rightcurlybrace ~ ~ tilde - Ÿ unused non-breakingspace ¡ ¡ invertedexclamation ¢ ¢ centsign £ £ poundsterling ¤ ¤ generalcurrencysign ¥ ¥ yensign ¦ ¦ brokenverticalbar § § sectionsign ¨ ¨ umlaut(dieresis) © © © copyright ª ª feminineordinal « « leftanglequote, guillemotleft ¬ ¬ notsign softhyphen ® ® registeredtrademark ¯ ¯ macronaccent
Named Entity Numeric Entity Glyph Description ° ° degreesign ± ± plusorminus ² ² superscripttwo ³ ³ superscriptthree ´ ´ acuteaccent µ µ microsign ¶ ¶ paragraphsign · · middledot ¸ ¸ cedilla ¹ ¹ superscriptone º º masculineordinal » » rightanglequote, guillemotright ¼ ¼ one-fourth ½ ½ one-half ¾ ¾ three-fourths ¿ ¿ invertedquestionmark À À À uppercaseA, graveaccent Á Á Á uppercaseA, acuteaccent    uppercaseA, circumflexaccent
Named Entity Numeric Entity Glyph Description à à à uppercaseA, tilde Ä Ä Ä uppercaseA, dieresisorumlautmark Å Å Å uppercaseA, ring Æ Æ Æ uppercaseAEdipthong(ligature) Ç Ç Ç uppercaseC, cedilla È È È uppercaseE, graveaccent É É É uppercaseE, acuteaccent Ê Ê Ê uppercaseE, circumflexaccent Ë Ë Ë uppercaseE, dieresisorumlautmark Ì Ì Ì uppercaseI, graveaccent Í Í Í uppercaseI, acuteaccent Î Î Î uppercaseI, circumflexaccent Ï Ï Ï uppercaseI, dieresisorumlautmark Ð Ð Ð uppercaseEth, Icelandic Ñ Ñ Ñ uppercaseN, tilde Ò Ò Ò uppercaseO, graveaccent Ó Ó Ó uppercaseO, acuteaccent Ô Ô Ô uppercaseO, circumflexaccent Õ Õ Õ uppercaseO, tilde
Named Entity Numeric Entity Glyph Description Ö Ö Ö uppercaseO, dieresisorumlautmark × × multiplysign Ø Ø Ø uppercaseO, slash Ù Ù Ù uppercaseU, graveaccent Ú Ú Ú uppercaseU, acuteaccent Û Û Û uppercaseU, circumflexaccent Ü Ü Ü uppercaseU, dieresisorumlautmark Ý Ý Ý uppercaseY, acuteaccent Þ Þ Þ uppercaseTHORN, Icelandic ß ß ß lowercasesharps, German(szligature) à à à lowercasea, graveaccent á á á lowercasea, acuteaccent â â â lowercasea, circumflexaccent ã ã ã lowercasea, tilde ä ä ä lowercasea, dieresisorumlautmark å å å lowercasea, ring æ æ æ lowercaseaedipthong(ligature) ç ç ç lowercasec, cedilla è è è lowercasee, graveaccent
Named Entity Numeric Entity Glyph Description é é é lowercasee, acuteaccent ê ê ê lowercasee, circumflexaccent ë ë ë lowercasee, dieresisorumlautmark ì ì ì lowercasei, graveaccent í í í lowercasei, acuteaccent î î î lowercasei, circumflexaccent ï ï ï lowercasei, dieresisorumlautmark ð ð ð lowercaseeth, Icelandic ñ ñ ñ lowercasen, tilde ò ò ò lowercaseo, graveaccent ó ó ó lowercaseo, acuteaccent ô ô ô lowercaseo, circumflexaccent õ õ õ lowercaseo, tilde ö ö ö lowercaseo, dieresisorumlautmark ÷ ÷ divisionsign ø ø ø lowercaseo, slash ù ù ù lowercaseu, graveaccent ú ú ú lowercaseu, acuteaccent û û û lowercaseu, circumflexaccent
Named Entity Numeric Entity Glyph Description ü ü ü lowercaseu, dieresisorumlautmark ý ý ý lowercasey, acuteaccent þ þ þ lowercasethorn, Icelandic ÿ ÿ ÿ lowercasey, dieresisorumlautmark
|