以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 DTD/XML Schema 』 (http://bbs.xml.org.cn/list.asp?boardid=23) ---- [转帖]XML属性:XML属性和实体 (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=21726) |
-- 作者:anchen0617 -- 发布时间:9/1/2005 1:51:00 AM -- [转帖]XML属性:XML属性和实体 XML属性:XML属性和实体
<!ATTLIST fn %attr.lang; value CDATA #FIXED "TEXT"> <!ENTITY % attr.img " img.type CDATA #REQUIRED img.data ENTITY #REQUIRED"> 那么让我们谈谈这件事,先有一点耐心。 上面这些行可能不好看,但实际上没什么。它们被用在DTD中来定义XML文档中的属性和实体。了解HTML的人会对这很清楚。属性是带有HTML标记符的条目,用来更准确地描述标记符。在经常出现的<img src="my.gif" height="20" width="20">中,有两个属性:height和width。你在后面会看到,在XML文档使用属性与之很相似。 对实体也没有什么新东西。如果你用过&,你就已经掌握了最基本的东西。一个被&和分号包围起来的字符串用来表示另一个或一套字符。(这里有ISO实体的完整清单。) 当然,XML中属性和实体还有其它功能。这就不可避免地要引入语法,虽然不太多。一旦知道了这些,就会不费劲地使用XML文档。 |
-- 作者:anchen0617 -- 发布时间:9/1/2005 1:52:00 AM -- 如果你决定自己写DTD,可能需要一本解释ATTLIST语句中所有组合的XML的书。但是如果借用DTD,或许只知道CDATA和另外三种属性就性了。 第一个是ID。它要求属性的值在文档中不重复。使用过数据库的人都知道唯一标志符的必要性。DTD ATTLIST语句看起来象这样: <!ATTLIST element_name attribute_name ID #REQUIRED> 很难想象没有#REQUIRED缺省值的ID属性类型。如果那样,任何重复的或空的ID都会迫使处理器返回一个错误。ID必须以字母或下划线开始并且不能包含任何空格。 NMTOKEN类型也使用上面的命名规则。但是允许重复。它被用做传递数据给应用程序的保障。大多数程序语言,包括Java和JavaScript,在模块名中不能有空格。大多数情况下,最好保证属性符合它们的规则。 最后是枚举类型,不需要特定的关键字。而是用"|"符号包含在括号内的值,例如: <!ATTLIST sibling (brother | sister) #REQUIRED> 如果有有限的可能的属性值,可以用这种方式。 不会认为今天的课程无趣吧,那么就接着读吧! |
-- 作者:anchen0617 -- 发布时间:9/1/2005 1:53:00 AM -- 实体 有五种预定义的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内不能被扩展。为了实现扩展功能,需要一个称为参数实体的特殊工具。它在实体定义中通过在实体名前插入"%"实现。一旦被定义,参数定义可以通过用百分号和分号包围参数名来实现。 为什么这么做?看看下面的代码: %prop.tel; | %prop.geo; | %prop.org; | %prop.exp; | %prop.sec;)*)> (nickname | photo | bday)"> 现在可以读一些DTD了。
|
-- 作者:anchen0617 -- 发布时间:9/1/2005 1:54:00 AM -- 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 / / solidus(slash) Named Named Named Named Named Named |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |