zl程序教程

您现在的位置是:首页 >  前端

当前栏目

xml

XML
2023-09-27 14:23:14 时间

xml语法

xml保留PCDATA中的空白符,回车换行缩进


dtd-1

内部,外部,公共DTD

元素
属性
实体

定义子元素
    有序子元素:逗号隔开
    互斥子元素:竖线隔开
    子元素出现的频率:
        +一次或多次
        *零次或多次
        ?零次或一次
        无必须出现一次
    组合子元素:使用圆括号
    
dtd-2
如果想对某一个元素中的属性进行限制,就用下面的
<!ATTLIST video id CDATA #IMPLIED>
         元素 属性名 属性类型 属性值声明
可以同时声明多个属性但不能重复,直接空格隔开

枚举
    默认值    <!ATTLIST video type (java|xml|database) "xml">
    固定值    <!ATTLIST video type (java|xml|database) #FIXED "xml">
    必须值    <!ATTLIST video type (java|xml|database) #REQUIRED>
    隐含值    <!ATTLIST video type (java|xml|database) #IMPLIED>
    
dtd-3
    实体的使用
    外部DTD的使用
    DTD的优缺点
    
    实体分类
    可以是一段要替换的文本,xml标记或外部文件
        内置实体
        字符实体    &#169;
        普通实体    需要在DTD中声明
        参数实体    中允许在DTD中使用

    引用外部DTD
        系统标识符
            <!DOCTYPE videos SYSTEM "uri" [
                可选的内部DTD声明
            ]>
        公共标识符
            <!DOCTYPE videos PUBLIC "FPI" "uri" >
            FPI的基本格式:-//W3C/DTD XHTML 1.0 Transitional//EN

    DTD的优缺点
        缺点
            DTD语法与xml不一致
            缺少对xml命名空间的支持
            缺少数据分类
            内容模型描述受限制

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE videos SYSTEM "test.dtd">
<videos>
    <video id="v001" vid="id1" >
        <title>java &unkown;</title>
    </video>
    <video id="v002" vid="id2" >
        <author>li</author>
        <publish />
    </video>
</videos>


test.dtd
<?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT videos (video*)>
    <!ELEMENT video (title|(author,publish))>
    <!ATTLIST video id CDATA #REQUIRED>
    <!ATTLIST video vid ID #REQUIRED>
    <!ATTLIST video type (java|xml|database) #FIXED "xml">
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT author (#PCDATA)>
    <!ELEMENT publish EMPTY>
    <!ENTITY unkown "未知数据">