• XML|DTD声明


    DTD

    ⭐本期类容 图

    在这里插入图片描述

    学习类容
    XML的概念
    1. 什么是格式良好的XML

      • 有且只有一个根元素
      • XML标签大小写正确区分
      • 正确使用结束标签
      • 正确嵌套标签
      • 使用合法的标签名
      • 定义有效的属性
    2. 什么是XML

      简单来说用来传输和存储数据

    3. 为什么要学习XML

      不是java开发要学习XML。是学习编程就必须懂得XML.,Xml是现今编程里面很常用的一个东西,操作简单,实现非常容易,存储体积也小,很易于调用。
      xml可以作为一个小型的数据存储,也可以作为一个存储信息的东西,像是一个项目里面的错误日志什么的,都是用这个做的

    4. XML的作用

    • 数据交互
    • 做配置
    XML元素定义
    1. 在XML加入DTD声明 ( 根节点)

    元素分类

    1. 声明一个XML DTD的声明 简单来说就是 给它一个属性的定义

    2. 这些就是它们的具体属性

    <!DOCTYPE persons[
    <!ELEMENT persons(person+)>
    <!ELEMENT person(name,age,contact)>
    <!ELEMENT name(#PCDATA)>
    <!ELEMENT age(#PCDATA)>
    <!ELEMENT phone(#PCDATA)>
    <!ELEMENT email(#PCDATA)>
    <!ELEMENT contact(#phone)> 	
    ]>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    <?xml version="1.0" encoding="UTF-8"?>
        
    <!DOCTYPE persons[  ]>
        
    //我这边根节点 为(persons[])
    <persons>
    	<person>
    		<name>张三</name>
    		<age>18</age>
    		<contact>
    			<phone>1234567</phone>
    		</contact>
    		<br/>
    	</person>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. 空元素 也就是如 br 标签 他只有尾 没有体 就叫空标签🙀

       <!ELEMENT br EMPTY>
      
      • 1
    2. 文本元素 (就是 在我们文本里的标签 里面 有指定 文本标签的就是文本元素 如张三 )

      <!DOCTYPE persons[
       <!ELEMENT name(#PCDATA)>//文本元素
      <!ELEMENT age(#PCDATA)>
      ]>
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
    3. 混合元素 简单来说就是 一个person节点里带有很多不一样的元素

      <!ELEMENT person(name,age,contact)>//混合元素
      
      • 1
      元素的限制
      • 数量次数
    4. 0或1:? 如现在我们的文本当中 就一个 name

    <!ELEMENT persons(name?)
    
    • 1
    1. 0或N: *

      <!ELEMENT persons(age*)
      
      • 1
    2. 1或N:+:

    <!ELEMENT persons(person+)  //这里指定的就是一个混合元素  (简单说里面的+号就是 指定了  这个元素 他不止一个)
    
    • 1

    完整定义

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE persons[
    <!ELEMENT persons(person+)>
    <!ELEMENT person(name,age,contact)>
    <!ELEMENT name(#PCDATA)>
    <!ELEMENT age(#PCDATA)>
    <!ELEMENT phone(#PCDATA)>
    <!ELEMENT email(#PCDATA)>
    <!ELEMENT contact(#phone)>
    ]>
    
    <persons>
    	<person>
    		<name>张小明</name>
    		<age>10</age>
    		<contact>
    			<phone>1234567</phone>
    		</contact>
    		<br/>
    	</person>
    	<person>
    		<name>张大明</name>
    		<age>35</age>
    		<contact>
    			<email>123@qq.com</email>
    		</contact>
    	</person>
    </persons>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    属性定义

    语法:如

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE persons[
         <!ATTLIST person
    	  pid ID #REQUIRED //ID 是必填 且不可重复的
    	  sex (男|女) '男'  // 性别  为男或女 如果不填 就默认 为(男)
    	  qq CDATA #IMPLIED //QQ 可填可不
    	  parent IDREF #IMPLIED 
    	>
        ]
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    属性类型type:

    ID

    (男|女)

    CDATA

    IDREF

    属性描述:

    • #REQUIRED: 必填
    • #LMPLIED: 非必填

    默认值

    主意:👻只有在定义type为男|女 类型时,desc才可以用默认值的方式

    完整代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE persons[
    	<!ELEMENT persons (person+)>
    	<!ELEMENT person (name,age,contact,br*)>
    	<!ELEMENT name (#PCDATA)>
    	<!ELEMENT age (#PCDATA)>
    	<!ELEMENT contact (phone|email)>
    	<!ELEMENT br EMPTY>
    	
            <!ATTLIST person//属性定义
    	  pid ID #REQUIRED
    	  sex (男|女) '男'
    	  qq CDATA #IMPLIED
    	  parent IDREF #IMPLIED
    	>
    ]>
    <persons>
    	<person pid="p1" sex="" qq="aaa" parent="p2">
    		<name>张小明</name>
    		<age>10</age>
    		<contact>
    			<phone>1234567</phone>
    		</contact>
    		<br/>
    	</person>
    	<person pid="p2">
    		<name>张大明</name>
    		<age>35</age>
    		<contact>
    			<email>123@qq.com</email>
    		</contact>
    	</person>
    </persons>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
  • 相关阅读:
    #案例:演示键盘操作!
    微信小程序获取用户头像和昵称能力调整!新的代替方案!
    QTableWidget通过QSS美化
    如何拼接两张图片?
    MySQL之CRUD
    【前段基础入门之】=>HTML5 的新增特性!
    FreeRTOS基础七:资源管理
    ios 让tableview 的section cell整体圆角
    自然语言处理(NLP)—— 生成式模型和判别式模型
    STL常用算法——查找算法
  • 原文地址:https://blog.csdn.net/qq_63130170/article/details/125536469