XML简易教程之四

  实体

  有五种预定义的XML实体,HTML编码者应该熟悉。XML文档中的字符&、<、>、"和'被分别表示为&、@lt;、>、"和&apos;。

  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

  &#00;-

   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