关于DTD文档里的ATTLIST

最近学习XML的DTD文档约束格式发现里面有一个ATTLIST挺有意思
以下是ATTLIST的语法格式:

elementName :要应用属性列表的元素的名称。
attributeName :属性名。 此参数可以根据需要重复多次,列出所有可与 elementName :一起使用的属性。
dataType :在 attributeName 参数中命名的属性的数据类型,该参数必须是以下值之一:

CDATA – 此属性将只包含字符数据。
ID - 该属性的值必须是唯一的。 不能在文档中使用的其他元素或属性中重复使用。
IDREF – 此属性引用文档中属于 ID 类型的另一个属性值。
ENTITY – 此属性值必须与一个外部的未分析 ENTITY 对应,后者也在同一个 DTD 中声明。
ENTITIES - 属性值包含 DTD 中声明的外部未分析实体的多个名称。
NMTOKEN – 此属性值必须是名称标记。 名称标记允许使用字符数据值,但是比 CDATA 的限制更多。 名称标记可以包含字母、数字和一些标点符号,例如句点、破折号、下划线和冒号。 但是,名称标记值中不得包含任何空白字符。
NMTOKENS - 属性值包含多个名称标记。 有关更多信息,请参见 NMTOKEN 和 Enumerated 的说明。
Enumerated – 此属性值只限于在枚举的列表中的值。 只有与列出的值匹配的值才能有效地分析。 所有枚举的数据类型加了一对括号,每个值通过竖线(“|”)分隔。

这个部分是我直接COPY的 有兴趣的同学直接看原网址:https://www.baidu.com/link?url=3H5XpT1MWkIxW7eiJM8OG6AHuaaa1yF8shVjp-9axA1fCaBxwzNYFhX_RAdK6eywVtjI6a5BSX6XXFMRiKy5E7avpUOEGF0EDo_S3GdpKEq&wd=&eqid=c32e3c6d00005a00000000055b777c51

为啥我要写一个这样的文章,是因为一开始我看在这个解释还是半迷糊有些不懂。
比如这个例子:

<!ATTLIST book
publisher  CDATA     #IMPLIED
reseller   CDATA     #FIXED    "MyStore"
ISBN       ID        #REQUIRED
inPrint    (yes|no)  "yes"
>

我是这样理解的,ATTLIST里列出来的全是关于book元素的属性
这些属性不像HTML里全部给你定义好了,比如有id呀 这些,我们也知道XML非常的自由,因此这里就是由我们自己定义book里包含了哪些属性

比如上面,book里包括了 publisher、reseller、ISBN、inPrint这四个属性,属性的数据类型都跟在每个属性背后定义了,如CDATA之类的。之后我们在写一个XML文档的时候,就可以这样写< book publisher=”xxx” ……>《白鹿原》这样了。

像ISBN属性就比较特别,它是用ID来标识它的数据类型,也就是说ISBN是唯一的 不能重复

我们会发现这个pubisher以及后面用……代替的属性和html里已经系统给你定义好的属性用法是一样的。

用一句经典的话结尾(我也不记得哪里听来的了)
HTML(基于对象编程)就是利用别人(开发HTML的人)写好的对象进行编程,所以你可以直接使用对象里的东西(具体有啥东西啥属性自己查文档啦~)
而JAVA(面向对象编程)就是自己new一个对象 自己开发对象,对象里有啥东西都是你自己定义哒~

猜你喜欢

转载自blog.csdn.net/qq_41477675/article/details/81806246
DTD
今日推荐