Loading

xml笔记

<!-- 注释 -->
文档声明:必须在文件开头

  • <?xml version="1.0" encoding="gbk">
    • 属性:  
      • version: 版本号    
      • encoding: 编码    
      • standalone: 是否需要依赖其他文件    
  • <![CDATA[ 内容]]>:内容中出现的特殊符号不需要转义

xml的约束
dtd约束 和 schema约束
dtd约束:

  • <!ELEMENT 元素名 约束>
    • 约束:  
      • 如果有子元素,就写子元素列表    
        • (元素名1[+/?/*],元素名2...)      
          • +: 一次或多次        
          • ?: 零次或一次        
          • *: 任意次        
          • ','换成'|': 在列出元素中选择一个        
          • ',': 表示元素必须按指定的顺序出现        
      • 没有子元素,写元素类型    
        • (#PCDATA): 字符串类型      
        • EMPTY:元素为空      
        • ANY: 任意      
  • dtd定义元素属性:
    • <!ATTLIST 元素名 属性名 属性类型 属性约束>  
      • 属性类型:    
        • CDATA: 普通文本字符串      
        • ENUMERATED: 枚举(枚举值1|枚举值2...)      
        • ID: 取值不能重复      
      • 属性约束:    
        • #REQUIRED: 必须出现      
        • #IMPLIED: 可有可无      
        • #FIXED: 固定值:#FIXED "固定值"      
        • 直接值:默认值      
  • 定义运用实体:(写在内部dtd里,否则有些浏览器取不到值)
    • <!ENTITY 实体名 "实体内容">  
    • 在xml中引用: &实体名;  
  • xml文件中引入:
    • 使用本地dtd文件: <!DOCTYPE 根元素名 SYSTEM "dtd文件路径">  
    • 使用内部dtd: <!DOCTYPE 根元素名 [ dtd代码 ]>  
    • 使用网络的dtd: <!DOCTYPE 根元素名 PUBLIC "dtd名称" "dtd文档的url">  

schema约束:

  • 特点:
    • 符合xml的语法  
    • 一个xml中可以有多个schema,多个schema使用名称空间区分(类似java的包)  
    • schema中支持更多的数据类型  
  • <schema></schema>:最外层标签
    • 标签写法为:<schema xmlns="http://www.w3.org/2001/XMLSchema"  
      • targetNamespace="http://www.example.org/1"    
      • xmlns:tns="http://www.example.org/1"    
      • elementFormDefault="qualified">    
      • 属性:    
        • xmlns: 默认使用的名称空间      
        • targetNamespace: 声明该文档中的元素属于哪个命名空间      
        • xmlns:tns: 该文档使用的元素和数据类型来自哪个命名空间,同时来自这个命名空间的元素和数据类型应该使用前缀xsd:      
        • elementFormDefault="qualified": 指出XML文档使用在此schema中声明过的元素必须被命名空间限定      
  • <element></element>: 定义元素
    • 若有子元素:  
      • <element><complexType><元素指示器>子element元素</元素指示器></complexType></element>    
        • 元素指示器:      
          • sequence: 表示元素是有顺序的        
          • all: 表示只能出现一次        
          • Choice: 只能出现其中一个        
        • 设置属性:(放在</complexType>前)      
          • <attribute></attribute>        
            • 属性:          
              • name: 名称            
              • type: 类型            
              • use: 是否必须有            
    • 若无子元素:  
      • <element></element>    
        • 属性:      
          • name: 数据名称        
          • type: 数据类型        
          • maxOccurs: 表示出现次数,="unbounded"时无限制        
      • <any></any>: 可以出现任意元素    
    • xml文件中引入:  
      • <根元素名 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.example.org/1" xsi:schemaLocation="http://www.example.org/1 1.xsd">    
        • 属性:      
          • xmlns: 声明默认约束来自哪个名称空间        
          • xsi:schemaLocation: 引入的名称空间和哪个xsd文件对应,第一个为名称空间, 第二个为xsd文件路径.        

 

posted @ 2019-01-11 15:04  烟草的香味  阅读(131)  评论(0编辑  收藏  举报