實體
有五種預定義的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
¡ &IExcl; 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