xml简单知识点

前端之家收集整理的这篇文章主要介绍了xml简单知识点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
XML(Extensible Markup Language,可扩展的标记语言) 作用:存储和传输数据 什么是XML? XML是一种元语言, 是一种与特定的业务逻辑相关的,语义的,结构化的标记语言的语法语言。 HTML语法定义是用xml标记书写规范和定义---W3C组织写的 自定义XML,声明解析都能实现自定义 XML优点? 1.简化了数据的传输与存储 2.能够更好的实现跨平台(跟平台无关) XML文档 文档后缀名.xml 1.XML文档第一行必须写声明 2.XML文档有且仅有一对根标签 格式良好的XML(WELL-Formed XML) 格式是否良好由浏览器校验 有意义的XML(格式良好的XML+语法校验) 格式良好规范: 1.标签要成对出现,正确结束 2.XML文档第一行必须写声明 3.XML文档有且仅有一对根标签 4.属性以键值对书写,属性值必须用引号引起来 5.标签要正确嵌套 6.标签注释与标签要正确嵌套 7.标签名称大小写敏感 8.标签名称可以包含数字,字母,下划线 9.标签名称不能以数字或者下划线开始 10.标签名称不能以XML,xml,Xml开始 XML语法验证DTD、Schema DTD(Document Type Definition):用来声明定义XML的语法 格式良好+DTD/Schema=有意义的XML 在XML中由于可以实现用户自定义, 那么在共享数据的时候必须加上语法规范,来声明规范XML格式 引入DTD 1.书写在XML文档的内部,叫内部DTD <!DOCTYPE 根标签 [ DTD规范]> 例如: <!DOCTYPE book[ <!ELEMENT book ANY> ]> 2.外部DTD,DTD的声明独立为一个文件文件的后缀名.dtd 在XML文件中引入外部DTD <!DOCTYPE 根标签 SYSTEM "外部dtd的路径"> 3.引入互联网上的DTD <!DOCTYPE 根标签 PUBLIC "互联网中DTD的访问路径"> DTD语法 声明一个元素(标签,节点) <!ELEMENT 元素名称 元素类型> 元素类型:ANY 表示任何解析数据 PCDATA(Parsed Charactor Data) 表示所有字符数据(&<>) EMPTY 空标签标签体不能含有任何内容 纯元素(标签体中只包含子标签) 1.含有一个子元素的纯元素 <!ELEMENT 元素名称 (子元素名称)> 2.含有多个子元素的纯元素 2.1非此即彼(多个子元素不能同时出现) <!ELEMENT book (title|timu)> |表示只允许出现其一 2.1子元素存在先后顺序 <!ELEMENT book (title,author)>,表示子元素必须出现并且存在先后顺序 2.3子元素重复出现 <!ELEMENT book (author*)> *表示零次多者多次 +一次或者多次 ?表示零次多车一次 2.4采用括号组合 <!ELEMENT book (title,(timu|author)*)> title必须出现,timu,author可出现零次或者多次 混合元素 既含有文本内容同时还有子元素 <!ELEMENT book (#PCDATA|title|author)*> 属性的声明定义 <!ATTLIST 元素名称 属性名称 属性数据类型 属性特点> 属性特点 #required 属性必须出现 #IMPLIED 属性可出现可不出现 属性数据类型 CDATA(Charactor Data) 表示所有字符 不允许&,<> NMTOKEN(name token) 所有字符不能包含空格(字符串中间不能包含空格) NMTOKENS 能包含空格 ID 唯一性,表示数据不能重复, 不能是纯数字,不能以数字开始 IDREF 属性的取值引用其他ID类型属性的值 IDREFS 属性的取值引用其他ID类型属性的值, 可以引用多个ID类型的值,相互用空格隔开 建立枚举类型的属性 <!ATTLIST author sex (男|女) #required> 固定取值的属性 <!ATTLIST author guoji CDATA #FIXED '中国'> 实体 实体:用一些字符来表示一组字符串或者是特殊格式的字符 预定义的实体 &gt; &lt; &quot; &nbsp; 自定义实体 <!ENTITY 实体名称 实体的内容> 实体使用 &实体名称; <!ENTITY en 'hello world'> 参数实体 只能定义在外部DTD <!ENTITY % can 'id ID #IMPLIED'> <!ATTLIST title %can;> Schema(一种XML文档的约束和定义) DTD的不足? 1.DTD的语法声明与XML中的元素格式不匹配 2.DTD数据类型有限,与数据库产品的数据类型不匹配 3.DTD不支持命名空间,不便于DTD文件的管理 Schema文档后缀名.xsd 声明根标签 <?xml version="1.0" encoding="UTF-8"?> 声明根标签schema,xs表示命名空间的别名 xmlns进一步声明解释命名空间 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 表示当前schema文档的元素是否纳入到当前命名空间的管理 qualified 纳入管理 unqualified 表示不纳入管理 elementFormDefault ="qualified" 表示当前schema文档的元素中的属性 是否纳入到当前命名空间的管理 attributeFormDefault = "unqualified" 定义目标xml文档引入当前schema所要引用的命名空间 targetNamespace="hello@yahoo.com.cn" > 声明一个元素 <xs:element name="book" type="xs:int"></xs:element> </xs:schema> 目标XML文件 <?xml version="1.0" encoding="UTF-8"?> 根标签的声明解释,根标签引用自目标schema文档 <my:book xmlns:my="hello@yahoo.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 书写目标schema的引用路径:命名空间 schema文件名 xsi:schemaLocation= "hello@yahoo.com.cn testSchema.xsd" >111</my:book> 元素的声明定义 <xs:element name="" type="" maxOccurs="" minOccurs=""/> name属性:表示元素的名称 type属性:元素的元素体的数据类型 type的取值: 基本数据类型 简单数据类型 复杂数据类型 1.基本数据类型 xs:int 整型 xs:string 字符串 xs:double 浮点类型 xs:date 日期类型 xs:time 时间类型 xs:decimal 任意精度类型 xs:boolean 布尔类型 2.简单类型SimpleType 2.1内嵌式简单类型 <xs:element name="book" > 声明简单类型 <xs:simpleType> 对类型中的值进行约束, base属性:设置基本数据类型 <xs:restriction base="xs:int"> <!--设置整数的最大值,不包含边界--> <xs:maxExclusive value="100"></xs:maxExclusive> </xs:restriction> </xs:simpleType> </xs:element> 注意:内嵌式简单类型,element元素中不能设置 type属性 2.2外部引用简单类型 <xs:element name="book" type="testSimple"></xs:element> <!--声明外部简单类型--> <xs:simpleType name="testSimple"> <xs:restriction base="xs:int"> <xs:minExclusive value="20"></xs:minExclusive> </xs:restriction> </xs:simpleType> 注意:在声明外部类型时,文档目录不能含有中文 在schema文档中 必须声明当前标签/数据类型等的命名空间 xmlns="必须与targetNamespace属性值一致" restriction标签:约束值的内容 设置最小值,不包含边界 <xs:minExclusive value="20"/> 设置整数的最大值,不包含边界 <xs:maxExclusive value="100"></xs:maxExclusive> 设置最小值,包含边界 <xs:minInclusive value=""></xs:minInclusive> 设置整数的最大值,包含边界 <xs:maxInclusive value="12"></xs:maxInclusive> 整数的最大位数 <xs:totalDigits value="3"></xs:totalDigits> 设置字符串的长度 <xs:length value="4"></xs:length> 设置字符串的最大长度 <xs:maxLength value="4"></xs:maxLength> 设置字符串的最小长度 <xs:minLength value=""></xs:minLength> 设置有限个具体取值 <xs:enumeration value="world"></xs:enumeration> 设置字符串的正则 <xs:pattern value=""></xs:pattern> 设置空白字符的处理方式 <xs:whiteSpace value=""></xs:whiteSpace> 设置小数的最大位数 <xs:fractionDigits value="2"></xs:fractionDigits> 只能应用在xs:decimal类型下 3.复杂类型 <xs:complexType name="comType"> 定义子元素,声明子元素的出现顺序 <xs:sequence maxOccurs="unbounded" minOccurs="1"></xs:sequence> maxOccurs:父标签中最大出现次数,默认1,unbounded 无限次数 minOccurs:父标签中最小出现次数,默认1 <xs:sequence > <xs:element name="title" type="xs:string"></xs:element> <xs:element name="author" type="xs:string"></xs:element> </xs:sequence> 声明子元素,出现没有先后顺序 <xs:all> <xs:element name="title" type="xs:string"></xs:element> <xs:element name="author" type="xs:string"></xs:element> </xs:all> 声明子元素,子元素非此即彼 <xs:choice> <xs:element name="title" type="xs:string"></xs:element> <xs:element name="author" type="xs:string"></xs:element> </xs:choice> 约束复杂类型中的值 <xs:simpleContent> <xs:restriction base="xs:int"> <xs:minExclusive value="12"></xs:minExclusive> </xs:restriction> </xs:simpleContent> 声明含有属性的元素 <xs:simpleContent> base属性:声明元素体的约束 <xs:extension base="xs:int"> 声明属性 <xs:attribute name="name" type="testSimple" use="optional" fixed="3"></xs:attribute> name属性属性名称 type属性属性取值 use属性属性特点 optional 可选择的 required 必须的 fixed属性属性的固定取值 </xs:extension> </xs:simpleContent> 设置复杂类型既含有子元素,同时含有属性 <xs:all> <xs:element name="title" type="xs:string"></xs:element> <xs:element name="author" type="xs:string"></xs:element> </xs:all> <xs:attribute name="name" type="xs:int" use="required"></xs:attribute> </xs:complexType> 设置混合类型的复杂类型 <xs:complexType name="comType" mixed="true"> <xs:all> <xs:element name="title" type="xs:string"></xs:element> <xs:element name="author" type="xs:string"></xs:element> </xs:all> <xs:attribute name="name" type="xs:int" use="required"></xs:attribute> </xs:complexType>

猜你在找的XML相关文章