• 在XML里的XSD和DTD以及standalone的使用2----具体使用详解


    如何定义XSD并在XML中使用XSD

    同时XSD可以对XML中的格式进行约束,当约束失败时给出提示。

    下面以下使用VS2010为平台进行演示。

    1.新建一个项目,然后在项目中添加xml架构文件(.xsd结尾的文件),本示例是新建一个网站,在网站中新建项XML架构文件,后缀是.xsd,命名为XMLSchema2.xsd

    2.平台自动生成如下内容:

    其中xmlns在使用XML引入XSD文件时比较重要。

    3.现在开始定义XSD

    <?xmlversion="1.0"encoding="utf-8"?>

    <xs:schemaid="XMLSchema2"

    targetNamespace="http://tempuri.org/XMLSchema2.xsd"

    elementFormDefault="qualified"

    xmlns="http://tempuri.org/XMLSchema2.xsd"

    xmlns:mstns="http://tempuri.org/XMLSchema2.xsd"

    xmlns:xs="http://www.w3.org/2001/XMLSchema"

    <xs:elementname="通讯录">

    <xs:complexType>

    <xs:sequence>

    <xs:elementref="记录"maxOccurs="unbounded"/>

    </xs:sequence>

    </xs:complexType>

    </xs:element>

    <xs:elementname="记录">

    <xs:complexType>

    <xs:sequence>

    <xs:elementref="姓名"/>

    <xs:elementref="关系"/>

    <xs:elementref="工作单位"/>

    <xs:elementref="职位"/>

    <xs:elementref="电话"/>

    <xs:elementref="手机"/>

    <xs:elementref="电子邮件"/>

    </xs:sequence>

    <xs:attributename="编号"use="required">

    <xs:simpleType>

    <xs:restrictionbase="xs:decimal"/>

    </xs:simpleType>

    <!--说明编号属性的类型:必须为整数-->

    </xs:attribute>

    </xs:complexType>

    </xs:element>

    <xs:elementname="姓名">

    <xs:simpleType>

    <xs:restrictionbase="xs:string"/>

    </xs:simpleType>

    <!--补充姓名的类型:字符串-->

    </xs:element>

    <xs:elementname="关系">

    <xs:simpleType>

    <xs:restrictionbase="xs:string">

    <xs:enumerationvalue="朋友"/>

    <xs:enumerationvalue="同事"/>

    <xs:enumerationvalue="亲属"/>

    <xs:enumerationvalue="一般"/>

    </xs:restriction>

    </xs:simpleType>

    <!--补充关系的类型:必须为朋友、同事、亲属、一般中的一种,不能重复-->

    </xs:element>

    <xs:elementname="工作单位">

    <xs:simpleType>

    <xs:restrictionbase="xs:string"/>

    </xs:simpleType>

    <!--补充工作单位的类型:字符串-->

    </xs:element>

    <xs:elementname="职位">

    <xs:simpleType>

    <xs:restrictionbase="xs:string"/>

    </xs:simpleType>

    <!--补充职位的类型:字符串-->

    </xs:element>

    <xs:elementname="电话">

    <xs:simpleType>

    <xs:restrictionbase="xs:string">

    <xs:patternvalue="d{3}-d{8}"></xs:pattern>

    </xs:restriction>

    </xs:simpleType>

    <!--补充电话的类型:按照形式“区号-号码”表示,其中区号占3位,号码占8位-->

    </xs:element>

    <xs:elementname="手机">

    <xs:simpleType>

    <xs:restrictionbase="xs:decimal">

    <xs:patternvalue="d{7,12}"/>

    </xs:restriction>

    </xs:simpleType>

    <!--补充手机的类型:必须为数字,长度介于7-12位之间-->

    </xs:element>

    <xs:elementname="电子邮件">

    <xs:simpleType>

    <xs:restrictionbase="xs:string">

    <xs:patternvalue="^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$"/>

    </xs:restriction>

    </xs:simpleType>

    <!--补充电子邮件的类型:形如“邮件名@域名”-->

    </xs:element>

    </xs:schema>

    “<xs:pattern”节点下的value支持正则表达式来验证。

    4.接下来在XML中引入XSD文件,对XML的节点输入值进行约束

    5.创建一个XML文件,并命名为XMLFile2.xml

    平台只生成一行代码。

    6.添加对XSD文件的引用

    一个XSD必定只有一个根结点,因此,此处将根结点也写于头部。

    添加两个属性:

    xmlns作为XSD所在的命名空间

    xmlns:xsi作为本XML文件的命名空间,即XSD的一个实例(instance)。

    7.开始编写XML文件

    8.输入<,发现它自动跳出可选的节点

    这个就是XSD的作用之一。

    9.继续输入,直到电话节点

    提示模式约束失败。这是XSD的作用之二。

    实际上,XSD是这样定义的:

    10.改到“区号-号码”的3+8形式,错误提示消失

    11.同理,对于邮箱地址

    12.改成正确形式

    13.完毕

  • 相关阅读:
    docker 上的第一个网址
    redis 和mongodb的区别
    在docker 里 搭建redis 主从节点
    .Net AOP 的简单入门 (静态代理 适配器模式完成aop)
    CocoaPods pod install下载慢问题
    [OC]OC基础概念
    [Swift]swift之随机数
    [Swift]iOS开发之气泡对话框的实现
    [Swift]CoreData防止数据冲突
    [Swift]iOS开发之初识CoreData
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/5606348.html
Copyright © 2020-2023  润新知