DTD约束

    xiaoxiao2022-07-13  147

    文章目录

    XML与HTML有什么不同?1. 什么是格式良好XML2. 在XML加入DTD声明3. 元素定义的语法4. 元素的分类5. 元素的限制6. 属性定义的语法7. XML中的特殊符号8.DTD的案例:

    XML与HTML有什么不同?

    XML: 被设计用来传输和存储数据。

    HTML:被设计用来显示数据。

    主要区别:语法要求不同,标记不同,作用不同。 1、语法要求不同:

    在html中不区分大小写,在xml中严格区分。

    在HTML中,有时不严格,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略

    或者之类的结束标记。在XML中,是严格的树状结构,绝对不能省略掉结束标记。

    在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/ 字符作为结尾。这样分析器就知道不用查找结束标记了。

    在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。

    在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

    在XML文档中,空白部分不会被解析器自动删除;但是html是过滤掉空格的。

    2、标记不同:

    1、html使用固有的标记;而xml没有固有的标记。

    2、Html标签是预定义的;XML标签是免费的、自定义的、可扩展的。

    3、作用不同:

    html是用来显示数据的;xml是用来描述数据、存放数据的,所以可以作为持久化的介质!Html将数据和显示结合在一起,在页面中把这数据显示出来;xml则将数据和显示分开。 XML被设计用来描述数据,其焦点是数据的内容。HTML被设计用来显示数据,其焦点是数据的外观。

    xml不是HTML的替代品,xml和html是两种不同用途的语言。 XML 不是要替换 HTML;实际上XML 可以视作对 HTML 的补充。XML 和HTML 的目标不同HTML 的设计目标是显示数据并集中于数据外观,而XML的设计目标是描述数据并集中于数据的内容。

    没有任何行为的XML。与HTML 相似,XML 不进行任何操作。(共同点)

    对于XML最好的形容可能是: XML是一种跨平台的,与软、硬件无关的,处理与传输信息的工具。

    XML未来将会无所不在。XML将成为最普遍的数据处理和数据传输的工具。

    1. 什么是格式良好XML

    1.1 有且只有一个根元素 1.2 XML标签大小写正确区分 1.3 正确使用结束标签 1.4 正确嵌套标签 1.5 使用了合法的标签名 1.6 定义有效的属性

    2. 在XML加入DTD声明

    <!DOCTYPE root[]>

    3. 元素定义的语法

    <!ELEMENT element-name (type)>

    注:根标签也要定义!!!

    4. 元素的分类

    <!ELEMENT element-name EMPTY>//空元素 <!ELEMENT element-name (#PCDATA)>//文本元素 <!ELEMENT element-name (e1,e2)>//混合元素

    5. 元素的限制

    , :顺序 | :或 次数: +(1~n次) *(0~n次) ?(0或1次) 没有

    6. 属性定义的语法

    att_name:属性名

    <!ATTLIST element-name att_name type >

    attribute

    类型: ID :唯一

    (男|女) :列表

    “值” :默认值

    CDATA :文本

    IDREF :外键

    #REQUIRED :不为空

    #IMPLIED :允许为空

    7. XML中的特殊符号

    &(逻辑与) & <(小于) < >(大于) > "(双引号) " '(单引号) ’

    8.DTD的案例:

    config.xml文件

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE config [ <!ELEMENT config (action*)> <!ELEMENT action (forward*)> <!ELEMENT forward EMPTY> <!ATTLIST action path CDATA #REQUIRED type CDATA #REQUIRED > <!ATTLIST forward name CDATA #REQUIRED path CDATA #REQUIRED redirect (true|false) 'false' > ]> <!-- config标签:可以包含0~N个action标签 --> <config> <!-- action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 ,子控制器对应的路径 type:字符串,非空,子控制器的完整类名 --> <action path="/registerAction" type="test.action.RegisterAction"> <forward name="success" path="/index.jsp" redirect="true" /> <forward name="failed" path="/register.jsp" redirect="false" /> </action> <action path="/loginAction" type="test.action.LoginAction"> <forward name="a" path="/index.jsp" redirect="false" /> <forward name="b" path="/welcome.jsp" redirect="true" /> </action> </config>
    最新回复(0)