XMLSchema.xsd 文件约束xml文档格式内容

XMLSchema.xsd 文件,用来约束xml内容格式的。

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchemaLettle"
    targetNamespace="http://www.pukuimin.com/XMLSchemaLettle.xsd"
    elementFormDefault="qualified"
    xmlns="http://www.pukuimin.com/XMLSchemaLettle.xsd"
    xmlns:mstns="http://www.pukuimin.com/XMLSchemaLettle.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="note">
    <xs:complexType>
      <xs:sequence>

        <xs:element name="heading" type="xs:string" minOccurs="0" maxOccurs="1" default="headstring">
        </xs:element>
        <xs:element name="body" type="xs:string" minOccurs="0" maxOccurs="1" default="content"/>
        <xs:element name="aletter" minOccurs="0" maxOccurs="1" default="a">
          <!--只能输入一个字符,且是大小写字母中的一个-->
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[a-zA-Z]"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="age" minOccurs="0" maxOccurs="1">
          <!--只能指定一个范围内的值-->
          <xs:simpleType>
            <xs:restriction base="xs:integer">
              <xs:minInclusive value="1"/>
              <xs:maxInclusive value="120"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="gender" minOccurs="0" maxOccurs="1" default="male">
          <!--正则表达示限制输入规则,这样能验证,但不自动提示-->
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:whiteSpace value="replace"/>
              <!--移除所有空白字符(换行、回车、空格以及制表符)-->
              <xs:pattern value="male|female"/>
              <xs:minLength value="4"/>
              <!--最小字符数-->
              <xs:maxLength value="6"/>
              <!--最大字符数-->
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="password" minOccurs="0" maxOccurs="1" default="12345678">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:length value="8"/>
              <!--固定长度-->
            </xs:restriction>
          </xs:simpleType>
        </xs:element>

        <xs:element name="from" type="xs:string" minOccurs="0" maxOccurs="1" default="pukuimin"/>
        <xs:element name="to" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence minOccurs="1" maxOccurs="1">
              <!--一个元素下的子元素-->
              <xs:element name="full_name" minOccurs="1" maxOccurs="1">
                <!--只能指定一个固定的值,vs里按Ctrl+J 就能显示可以指定的值-->
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="pu"/>
                    <xs:enumeration value="shu"/>
                    <xs:enumeration value="liu"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="child_name" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:sequence>
            <xs:anyAttribute />
            <!--允许指定自定义属性-->
          </xs:complexType>
        </xs:element>

        <xs:element name="to2">
          <xs:complexType>
            <xs:attributeGroup ref="persongroup"/>
          </xs:complexType>
        </xs:element>

      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:attributeGroup name="persongroup">
    <!--一个元素中的很多属性-->
    <xs:attribute name="firstname" default="pu">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="pu"/>
          <xs:enumeration value="shu"/>
          <xs:enumeration value="liu"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="lastname" type="xs:string" default="km"/>
    <xs:attribute name="birthday" type="xs:date" default="2012-08-27"/>
  </xs:attributeGroup>

</xs:schema>

在vs2010中:

 

生成的示例xml文件内容:

<?xml version="1.0" encoding="utf-8"?>
<note xmlns="http://www.pukuimin.com/XMLSchemaLettle.xsd">
  <heading>headstring</heading>
  <body>content</body>
  <aletter>a</aletter>
  <age>1</age>
  <gender>male</gender>
  <password>12345678</password>
  <from>pukuimin</from>
  <to>
    <!-- Attribute Wild card could not be matched. Generated XML may not be valid. -->
    <full_name>pu</full_name>
    <child_name>child_name1</child_name>
  </to>
  <to>
    <!-- Attribute Wild card could not be matched. Generated XML may not be valid. -->
    <full_name>shu</full_name>
    <child_name>child_name2</child_name>
  </to>
  <to>
    <!-- Attribute Wild card could not be matched. Generated XML may not be valid. -->
    <full_name>liu</full_name>
    <child_name>child_name3</child_name>
  </to>
  <to2 firstname="pu" lastname="km" birthday="2012-08-27" />
</note>

如果不符合约束要求,文档就会 显示警告。

 

 

时间: 2024-10-26 05:46:32

XMLSchema.xsd 文件约束xml文档格式内容的相关文章

c# 操作xml文件 报 xml文档无效 文档没有根元素

问题描述 c# 操作xml文件 报 xml文档无效 文档没有根元素 c# 操作xml文件 报 xml文档无效 文档没有根元素看图 看看我那里写错了 解决方案 xml文档有且只有一个根节点

VC++中利用MSXML解析XML文档

c++|xml 四.程序实现 下面通过一个具体的实例来说明在VC++中如何利用MSXML解析XML文档. (1)源XML文档(xmlfile.xml)如下: <?xml version="1.0" encoding="GB2312"?> <Device id="10041" name="设备1"> <Type>13</Type> <TypeName>保护</Ty

Flash处理外部XML文档数据

xml|数据 准备: 首先你得有台电脑.其次是要装上Windows系统和Flash8. XML基础: 既然是处理XML文档.就要先来了解下XML文档.下面是我所了解的,有些是在Flash中用不到的.XML扩展标记语言(Extensible Markup Language)是SGML(Structured Generalized Markup Language)的子集.XML是由World Wide Web Consortium(W3C)的XML工作组定义的. 下面开始了解XML的结构: XML是

[Qt教程] 第27篇 XML(一)使用DOM读取XML文档

[Qt教程] 第27篇 XML(一)使用DOM读取XML文档 楼主  发表于 2013-5-21 21:14:28 | 查看: 1001| 回复: 14 使用DOM读取XML文档 版权声明 该文章原创于作者yafeilinux,转载请注明出处! 导语 XML(ExtensibleMarkup Language,可扩展标记语言),是一种类似于HTML的标记语言,但它的设计目的是用来传输数据,而不是显示数据.XML的标签没有被预定义,用户需要在使用时自行进行定义.XML是W3C(万维网联盟)的推荐标

使用CSS样式表格式化XML文档

 这篇文章适用于有一定CSS基础的朋友们.如果你还没有CSS基础,可以到中文w3schools进行学习.      1.XML中引入CSS样式.      在XML中引入CSS样式表有两种方法.一种是在XML文档中直接嵌入CSS样式:另一种则是外部引入(似乎在WEB中很多引入的方式都有这两种).在XML中直接嵌入CSS样式的方法如下:  1 <?xml version="1.0" encoding="utf-8"?> 2 <?xml-stylesh

通过php添加xml文档内容的方法

 代码如下: <?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new DOMDocument(); //2.加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中) $xmldoc->load("class.xml"); //3.添加一条学生信息 //(1)取出要节点 $root = $xmldoc->getElementsByTagName("class")->ite

利用XSL和ASP实现XML文档在线编辑

xml|在线 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法.由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的处理必须在服务器端进行.要编辑XML文档,首先要做的事情就是怎样把这些数据提取并显示给访问者,XSL为我们显示XML文件提供了一个很好的解决方案.下面的例子就是利用XSL样式单把XML文档显示出来,供用户进行编辑,然后再把编辑后的数据提交到服务器,在服务器端进行数据的更新.这里采用ASP(Active Server Pages)来完成我们的任务

利用XSL和ASP在线编辑XML文档

xml|在线 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法.由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的处理必须在服务器端进行.要编辑XML文档,首先要做的事情就是怎样把这些数据提取并显示给访问者,XSL为我们显示XML文件提供了一个很好的解决方案.下面的例子就是利用XSL样式单把XML文档显示出来,供用户进行编辑,然后再把编辑后的数据提交到服务器,在服务器端进行数据的更新.这里采用ASP(Active Server Pages)来完成我们的任务

用XSL和ASP在线编辑XML文档

    本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法.由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的处理必须在服务器端进行.要编辑XML文档,首先要做的事情就是怎样把这些数据提取并显示给访问者,XSL为我们显示XML文件提供了一个很好的解决方案.下面的例子就是利用XSL样式单把XML文档显示出来,供用户进行编辑,然后再把编辑后的数据提交到服务器,在服务器端进行数据的更新.这里采用ASP(Active Server Pages)来完成我们的任务. 首