如何使用正则表达式进行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***/
<?xmlversion="1.0"encoding="gb2312"?>
<rootxmlns: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***/
<?xmlversion="1.0"encoding="gb2312"?>
<xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:elementname="root"type="Root"/>
<xsd:complexTypename="Root">
<xsd:sequence>
<xsd:elementname="user"type="User"minOccurs="0"maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexTypename="User">
<xsd:sequence>
<xsd:elementname="name"type="xsd:string"/>
<xsd:elementname="email"type="Email"/>
<xsd:elementname="ip"type="IP"/>
<xsd:elementname="color"type="Color"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleTypename="Email">
<xsd:restrictionbase="xsd:string">
<xsd:patternvalue="([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:simpleTypename="IP">
<xsd:restrictionbase="xsd:string">
<xsd:patternvalue="(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:simpleTypename="Color">
<xsd:restrictionbase="xsd:string">
<xsd:patternvalue="#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
/***examples.htm***/
<SCRIPTLANGUAGE="javaScript">
functionvalidate()
{
varoXML;
varnParseError;
varsReturnVal;
oXML=newActiveXObject("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+"\n";
sReturnVal=sReturnVal+"错误原因:"+oXML.parseError.Reason+"\n";
sReturnVal=sReturnVal+"错误字符串:"+oXML.parseError.srcText+"\n";
sReturnVal=sReturnVal+"错误行号"+oXML.parseError.line+"\n";
sReturnVal=sReturnVal+"错误列数:"+oXML.parseError.linepos+"\n";
}
else
{
sReturnVal=sReturnVal+"验证通过!"
}
alert(sReturnVal);
}
functionwindow.onload()
{
validate();
}
</SCRIPT>以上是“如何使用正则表达式进行xml数据验证”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
Nginx正反向代理与正则表达式详解
-
Notepad++ 隐藏功能揭秘:正则表达式替换与多文件批量处理技巧
-
Notepad++ 正则表达式实战:批量替换与数据清洗技巧
-
Notepad++ 多文件搜索:正则表达式与目录批量处理技巧
-
正则指引(第2版)
-
密码格式验证的常用正则表达式有哪些
密码格式验证的常用正则表达式有哪些这篇文章主要为大家展示了“密码格...
-
正则替换如何实现输入框只能有数字、中英文逗号
正则替换如何实现输入框只能有数字、中英文逗号这篇文章将为大家详细讲...
-
正则表达式匹配原理之逆序环视的示例分析
正则表达式匹配原理之逆序环视的示例分析这篇文章主要为大家展示了“正...
-
正则如何实现替换换行符和把br替换成换行符
正则如何实现替换换行符和把br替换成换行符这篇文章主要介绍了正则如...
-
如何使用正则匹配电话号手机号邮箱网址
如何使用正则匹配电话号手机号邮箱网址这篇文章主要介绍了如何使用正则...
