首页 > 其他分享 >XML学习笔记2

XML学习笔记2

时间:2023-02-13 11:02:40浏览次数:45  
标签:XML xml 文件 笔记 DTD 学习 文档 约束 属性


1.3 DTD约束
1.什么是约束:在xml文档中,咱们可以通过一个文件来约束xml文档中的内容规范。、
简单来说:约束就是规定xml文件中可以些什么,不可以些什么。
为什么要有约束?
因为xml文件可以随意写,如果标记随意些,在解析xml文件时,程序员就不清楚xml文件中的标记具体表示什么含义,所以说用约束规范xml文件的书写。
2.创建约束文件
什么是DTD:文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

语法:
比如:

<!ELEMENT 书架 (书名,作者,价格)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
3.DTD引入:
1.直接在xml文件中引入DTD约束
语法:
<!DOCTYPE 书架 [
<!ELEMENT 书架 (书+)>
<!ELEMENT 书架 (书名,作者,价格)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
]>
2.外部引入方式:
>>>本地引入:
语法:<!DOCTYPE 书架 SYSTEM “book.dtd”>
>>>公网引入:
<!-- DOCTYPE 书架 PUBLIC “DTD名称” “DTD文件在公网的url” -->

3.DTD语法:
基本语法:<!ELEMENT 元素名称 元素内容>
元素内容对应的类型:

普通的文本,#PCDATA
子元素:比如说:(子元素1,子元素2,—)
EMPTY:比如说
ANY代表任意内容:元素内容可以是普通的文本,也可以是子元素。
注意:
*表示0个或者多个
+表示一个或者多个
| 任选一个
,表示子元素按顺序排列
?表示可以出现0或者1

2.属性定义
语法:<!ATTLIST 元素名称 属性名称 属性类型 默认值>
属性类型:
CDATA:属性值位任意文本数据;
CDATA,即Character Data(字符数据)。表示属性的类型为字符类型
Enumerated:属性值必须是枚举列表中的一个;
ID:属性值必须是唯一的,并且属性值不能以数字开头。
IDREF:属性值必须是ID属性的值;
属性类型的设置说明:
#REQUIDED:表示属性是必须的;
#IMPLIED:表示属性是可选的,即这个属性可以不给出。
1.4 Schema约束
1.什么是Schema约束:它同DTD约束基本一样,也是用来规范xml文件内容的书写规范,只不过Schema的约束笔DTD更加强大。
区别:
>>>DTD约束文件的后缀名.dtd,机制采用自身的约束

Schema约束文件的后缀名是.xsd,它是基于xml语法格式。
2.什么是名称空间:
名称空间的作用就是用来在xml文档中引入schema文件的,但是在一个xml文件中可以引入多个schema文件,就可以使用名称空间来区分不同的约束文件。
3.引入Schema文档
第一种:通过名称空间来引入schema文件,第二种:不通过名称空间来引入。
4.Schema语法

元素定义 >>>属性定义


标签:XML,xml,文件,笔记,DTD,学习,文档,约束,属性
From: https://blog.51cto.com/u_15961549/6053740

相关文章

  • XML学习笔记1
    第二章:XML、http协议、tomcat1.XML概述1.1什么是XML:英文ExtensibleMarkUpLanguage,可扩展的标记语言**可扩展的标记语言:在XML里面的标记是可以扩展的。**XML版本号1.0......
  • HTML学习笔记1
    1.2单标记和双标记1.单标记:空标记,就是没有结束标记的称之为单标记。语法:水平线标记:​​​<hr/>​​​换行标记:​​<br/>​​​2.双标记:体标,就是这个标记有开始和结......
  • 《告别圆舞曲》——读书笔记
    2023.2.9①对秩序的渴望是一种正当的借口,藉此,人对人的仇恨就堂而皇之地掩盖了人地罪孽2023.2.10①人一老,就喜欢吹嘘自己往日里受过的苦,把它们变成一个博物馆,并邀请人......
  • 【HMS Core】机器学习服务助力APP快速集成图像分割与上传功能
    ​1、介绍总览机器学习服务(MLKit)提供机器学习套件,为开发者使用机器学习能力开发各类应用,提供优质体验。得益于华为长期技术积累,MLKit为开发者提供简单易用、服务多样......
  • Spring boot 学习笔记:第十章--实现AcApp端
    开启最后一章的学习java-jarmatchingsystem.jar启动jar包ctrl+shift+r浏览器强制刷新重新打包的流程app.vue删去div.windows标签。style加上scoped属......
  • 联想笔记本充电周期达到300问题解决。
       1.发现联想笔记本电源低于45W就会损耗电池周期;高于45W时电池则直接用充电器电,右下角的叹号也会消失。2.笔记本默认电源就只有45W。如果用了type-c扩展坞,走PD......
  • 读Java实战(第二版)笔记08_默认方法
    1. 兼容性1.1. 二进制级的兼容性1.1.1. 只要不重新编译该类,即使不实现新的方法,现有类的实现依旧可以运行1.1.2. 现有的二进制执行文件能无缝持续链接(包括验证、准......
  • java学习
    Markdown学习一级标题:#+空格+标题名字二级标题:##+空格+加标题名字三级标题:###+空格+加标题名字四级标题####+空格+加标题名字五六级标题以此类推字体Holle,wor......
  • DVWA渗透测试笔记 low篇
    DVWA配置项目地址:https://github.com/digininja/DVWA.gitclone到服务器目录下即可将DVWA目录拷贝到Kali的Apache服务器目录/var/www/html下,启动Apache和mysql服务。ser......
  • 【博学谷学习记录】超强总结,用心分享 | vue面试1
    vuex的原理是什么?它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。每一个Vuex应用的核心就是store,里面又包括:(1)sta......