使用正则表达式进行xml数据验证

相逢她恨晚

相逢她恨晚

2016-02-19 21:15

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的使用正则表达式进行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:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  /*** examples.xml ***/
  ?xml version="1.0" encoding="gb2312"?
  root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="examples.xsd"
      user
    nametest/name
    emailmoonpiazza@hotmail.com/email
    ip127.0.0.1/ip
    color#000000/color
      /user
      user
    nameguest/name
    emailguest@371.net/email
    ip202.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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

   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

展开更多 50%)
分享

猜你喜欢

使用正则表达式进行xml数据验证

Web开发
使用正则表达式进行xml数据验证

正则表达式验证

Web开发
正则表达式验证

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

IP 正则表达式验证

Web开发
IP 正则表达式验证

java正则表达式验证函数

Web开发
java正则表达式验证函数

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

js正则表达式验证邮箱

Web开发
js正则表达式验证邮箱

正则表达式

Web开发
正则表达式

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

对XML数据使用XMLConvert

对XML数据使用XMLConvert

XML 中的常见问题(2)

XML 中的常见问题(2)
下拉加载更多内容 ↓