博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Schema约束
阅读量:6306 次
发布时间:2019-06-22

本文共 2797 字,大约阅读时间需要 9 分钟。

hot3.png

在继续之前你应对以下内容有基本了解:

  • HTML / XHTML

  • XML and XML Namespaces

    XML 和 XML 名称空间

  • A basic understanding of DTD

    对DTD有基本的了解

Schema约束

    XML Schema是以XML语言为基础的,它用于可替代DTD。

    一份XML schema文件描述了XML文档的结构。

    XML Schema语言也被称为XML Schema Definition (XSD)(XML Schema定义).         

            1:Schema(*.xsd)文件就是一个xml文件。(DTD不是一个xml文件)

            2:*.xsd文件,可以更加具体限制数据类型,出现的次数。

namespace - java包名。用于区分不同的类。namespace命名空间中,用于区分不同的元素.

<?xml version="1.0" encoding="UTF-8"?>

<users xmlns:a1="" xmlns:a2="" xmlns="">
 <a1:user>
 </a1:user>
 <a2:dog />
 <jack/>
</users>

 

以下是用schema来约束xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<users>
 <user id="U002">
  <name>李四</name>
  <age>23</age>
 </user>
</users>

 

第一步:创建一个xsd文件

<?xml version="1.0" encoding="UTF-8"?>

<schema   //schema的根不能修改
  xmlns=""   - 默认的命名空间,这个命名空间来自于w3,这个命名空间,已经集成到了所有开发环境中

targetNamespace="" - 用户可以修改的命名空间,用于做广播或是引用。

 xmlns:tns=""- 和targetNamespace保持一致。

elementFormDefault="qualified" - 完全限定的名称

>

</schema>

<?xml version="1.0" encoding="UTF-8"?>

<schema xmlns="" targetNamespace=""
 xmlns:tns="" elementFormDefault="qualified">
 <!-- 定义根元素 -->
 <element name="users">
  <complexType>
   <sequence>
    <element name="user" maxOccurs="1" minOccurs="1">
     <complexType>
      <sequence>
       <element name="name" maxOccurs="1" type="string"
        minOccurs="1" />
       <element name="age" type="integer" maxOccurs="1"
        minOccurs="1" />
      </sequence>
      <attribute name="id" use="required" type="ID">

      </attribute>

     </complexType>
    </element>
   </sequence>
  </complexType>
 </element>
</schema>

第二步:在users.xml中引用这个*.xsd文件

<?xml version="1.0" encoding="UTF-8"?>

<users xmlns:xsi=""
 xmlns="" xsi:schemaLocation=" users.xsd">
 <user id="U002">
  <name>李四</name>
  <age>23</age>
 </user>
</users>

以下是完整的xsd约束:

<?xml version="1.0" encoding="UTF-8"?>

<schema xmlns="" targetNamespace=""
 xmlns:tns="" elementFormDefault="qualified">
 <!-- 定义根元素 -->
 <element name="users">
  <complexType>
   <sequence>
    <element name="user" maxOccurs="unbounded" minOccurs="1">
     <complexType>
      <sequence>
       <element name="name" maxOccurs="1" minOccurs="1">
        <simpleType>
         <restriction base="string">
          <minLength value="3"></minLength>
          <maxLength value="6"></maxLength>
         </restriction>
        </simpleType>
       </element>
       <element name="age" maxOccurs="1" minOccurs="1">
        <simpleType>
         <restriction base="integer">
          <minExclusive value="1"></minExclusive>
          <maxInclusive value="100"></maxInclusive>
         </restriction>
        </simpleType>
       </element>
      </sequence>
      <attribute name="id" use="required" type="ID">
      </attribute>
     </complexType>
    </element>
   </sequence>
  </complexType>
 </element>
</schema>

经下是引用这个xsd的CODE:

<?xml version="1.0" encoding="UTF-8"?>

<users xmlns:xsi=""
 xmlns="" xsi:schemaLocation=" users.xsd">
 <user id="U002">
  <name>李四1</name>
  <age>23</age>
 </user>
 <user id="U001">
  <name>李四2</name>
  <age>23</age>
 </user>
 <user id="U004">
  <name>李四weew</name>
  <age>100</age>
 </user>
</users>

转载于:https://my.oschina.net/u/2311668/blog/464768

你可能感兴趣的文章
因为你是前端程序员!
查看>>
数据库设计中的14个技巧
查看>>
Android学习系列(5)--App布局初探之简单模型
查看>>
git回退到某个历史版本
查看>>
ecshop
查看>>
HTML5基础(二)
查看>>
在GCE上安装Apache、tomcat等
查看>>
在Mac 系统下进行文件的显示和隐藏
查看>>
ue4(c++) 按钮中的文字居中的问题
查看>>
技能点
查看>>
读书笔记《乌合之众》
查看>>
Hadoop日记Day1---Hadoop介绍
查看>>
iOS 学习资料汇总
查看>>
centos7 yum安装jdk
查看>>
Bluedroid与BluZ,蓝牙测试方法的变动(基于bludroid和BlueZ的对比)
查看>>
接口和抽象类有什么区别
查看>>
Linux 下添加用户,修改权限
查看>>
请问view controller scene,该如何删除
查看>>
bootstrap新闻模块样式模板
查看>>
zzzzw_在线考试系统①准备篇
查看>>