| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> WEB设计 >> XML >> XML进阶技巧 >> 文章正文>>>>>> 
使用正则表达式进行xml数据验证
 XML Schema是定义XML的数据定义文件,以.xsd作为文件的扩展名。它也以被用来定义一类XML文件。

  通常,一些特殊含义的数据不能通过系统预设的数据结构(类型)清楚地描述。

  XML Schema 规范中声明:可以通过facet来限制(restriction)简单类型,从而产生一些新的原子类型(Atomic types)。

  Facet有pattern, enumeration,等等;

  这里要说的是其中非常有用的一项是:

  pattern+ 正则表达式语言(regular expression language) 结合正则表达式的强大功能,就可以进行一些复杂的数据结构的描述

  Examples可以通过xmlspy, xmlwrite,或js/vbs 等进行验证,下面举出了js验证的例子(需要msxml4.0支持)

  有关定义 XML Schema 的信息,可以在W3C 的 XML Schema 规范的第一部分中找到。有关内置数据类型及其可用的局限性方面的信息,请检 查 XML Schema 规范的第二部分。关于 这两部分 XML Schema 规范的简易摘要,请查看 W3C Primer on XML Schema。

  有关正则表达式,可以去http://www.regexlib.com/看看

  examples:

  /*** examples.xml ***/
<?xml version="1.0" encoding="gb2312"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="examples.xsd">
   <user>
  <name>test</name>
  <email>moonpiazza@hotmail.com</email>
  <ip>127.0.0.1</ip>
  <color>#000000</color>
   </user>
   <user>
  <name>guest</name>
  <email>guest@371.net</email>
  <ip>202.102.224.25</ip>
  <color>#FFFFFF</color>
   </user>  
</root>

  /*** examples.xsd ***/
<?xml version="1.0" encoding="gb2312"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="root" type="Root"/>
<xsd:complexType name="Root">
 <xsd:sequence>
  <xsd:element name="user" type="User" minOccurs="0" maxOccurs="unbounded" />
 </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="User">
 <xsd:sequence>
  <xsd:element name="name" type="xsd:string"/>
  <xsd:element name="email" type="Email" />
  <xsd:element name="ip" type="IP" />
  <xsd:element name="color" type="Color" />
 </xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="Email">
 <xsd:restriction base="xsd:string">
  <xsd:pattern value="([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)"/>
 </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="IP">
 <xsd:restriction base="xsd:string">
  <xsd:pattern value="(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0).(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])"/>
 </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Color">
 <xsd:restriction base="xsd:string">
  <xsd:pattern value="#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?"/>
 </xsd:restriction>
</xsd:simpleType>
</xsd:schema>

  /*** examples.htm ***/
<SCRIPT LANGUAGE="javaScript">
function validate()
{
 var oXML ;
 var nParseError;
 var sReturnVal;
oXML = new ActiveXObject("MSXML2.DOMDocument.4.0") ;
 oXML.async = false ;
 oXML.validateOnParse = true;
oXML.load("examples.xml") ;
nParseError = oXML.parseError.errorCode ;
 sReturnVal = "" ;
if (0 != nParseError)
 {
  //参看书籍教程中parseError对象属性
  sReturnVal = sReturnVal + "代码:" + oXML.parseError.errorCode + " " ;
  sReturnVal = sReturnVal + "错误原因:" + oXML.parseError.Reason + " " ;
  sReturnVal = sReturnVal + "错误字符串:" + oXML.parseError.srcText + " " ;
  sReturnVal = sReturnVal + "错误行号" + oXML.parseError.line + " " ;
  sReturnVal = sReturnVal + "错误列数:" + oXML.parseError.linepos + " " ;
 }
 else
 {
  sReturnVal = sReturnVal + "验证通过!"
 }
alert(sReturnVal);
}
function window.onload()
{
 validate();
}
</SCRIPT>


上一篇:
  • 上一篇文章:
  • 下一篇
  • 下一篇文章: 没有了
  • 收藏此文到百度搜藏 百度搜藏| 新浪VIvi| 365key| Younote| 博采中心| 你好BLOG| 亿友网摘| 和讯网摘|
    相关文章    
    基于XML的购物车的实现
    javascript+xml实现分页技巧
    使用xmldom在服务器端生成静态html页面
    建立一个 XML 的开发环境
    XML数据库几个容易混淆的概念
    XML基础教程
    将改变我们生活的这些XML应用之一
    XML轻松学习手册
    XML数据库探讨
    XML语法概述
     
     
     
    最新文章
    普通文章 使用正则表达式进行xml数据验证最新文章
    普通文章 基于XML的购物车的实现最新文章
    普通文章 javascript+xml实现分页技巧最新文章
    普通文章 三种级别的DB2数据库字符集的设置最新文章
    普通文章 eMule电驴代理服务器作用讲解最新文章
    普通文章 删除Windows XP SP2中的无线设备最新文章
    普通文章 网页中加入透明Flash的方法和技巧最新文章
    普通文章 使用xmldom在服务器端生成静态ht最新文章
    普通文章 建立一个 XML 的开发环境最新文章
    普通文章 Win Vista电源及混合睡眠模式配置最新文章
     
    热门文章
    推荐文章 CorelDraw 表格制作终极方案
    推荐文章 Photoshop鼠绘水墨风格的精美荷花
    推荐文章 Fireworks网页界面综合设计实例详
    推荐文章 Oracle数据库配置中的常见错误代
     
     
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 

    版权所有2006-2008 龙腾教程网