首頁 後端開發 XML/RSS教程 使用正規表示式進行xml資料驗證的程式碼實例詳解

使用正規表示式進行xml資料驗證的程式碼實例詳解

Mar 04, 2017 pm 05:21 PM

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 + "\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);
}

function window.onload()
{
 validate();
}
</SCRIPT>
登入後複製

 以上就是使用正規表示表達式進行xml資料驗證的程式碼實例詳解的內容,更多相關內容請關注PHP中文網(www.php.cn)!


#
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP正規表示式驗證:數位格式偵測 PHP正規表示式驗證:數位格式偵測 Mar 21, 2024 am 09:45 AM

PHP正規表示式驗證:數位格式偵測在編寫PHP程式時,經常需要對使用者輸入的資料進行驗證,其中一個常見的驗證是檢查資料是否符合指定的數字格式。在PHP中,可以使用正規表示式來實現這種驗證。本文將介紹如何使用PHP正規表示式來驗證數字格式,並提供具體的程式碼範例。首先,讓我們來看看常見的數字格式驗證要求:整數:只包含數字0-9,可以以正負號開頭,不包含小數點。浮點

如何使用正規表示式在 Golang 中驗證電子郵件地址? 如何使用正規表示式在 Golang 中驗證電子郵件地址? May 31, 2024 pm 01:04 PM

若要使用正規表示式在Golang中驗證電子郵件地址,請執行下列步驟:使用regexp.MustCompile建立正規表示式模式,以符合有效的電子郵件地址格式。使用MatchString函數檢查字串是否與模式相符。此模式涵蓋了大多數有效的電子郵件地址格式,包括:局部使用者名稱可以包含字母、數字和特殊字元:!.#$%&'*+/=?^_{|}~-`網域至少包含一個字母,後面可以跟字母、數字或連字符頂級域名(TLD)不能超過63個字符長

如何在 Go 中使用正規表示式匹配時間戳記? 如何在 Go 中使用正規表示式匹配時間戳記? Jun 02, 2024 am 09:00 AM

在Go中,可以使用正規表示式比對時間戳記:編譯正規表示式字串,例如用於匹配ISO8601時間戳記的表達式:^\d{4}-\d{2}-\d{2}T \d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ 。使用regexp.MatchString函數檢查字串是否與正規表示式相符。

如何使用 PHP 函數處理 XML 資料? 如何使用 PHP 函數處理 XML 資料? May 05, 2024 am 09:15 AM

使用PHPXML函數處理XML資料:解析XML資料:simplexml_load_file()和simplexml_load_string()載入XML檔案或字串。存取XML資料:利用SimpleXML物件的屬性和方法來取得元素名稱、屬性值和子元素。修改XML資料:使用addChild()和addAttribute()方法新增元素和屬性。序列化XML資料:asXML()方法將SimpleXML物件轉換為XML字串。實戰案例:解析產品饋送XML,提取產品信息,轉換並將其儲存到資料庫中。

如何在 Go 中使用正規表示式驗證密碼? 如何在 Go 中使用正規表示式驗證密碼? Jun 02, 2024 pm 07:31 PM

Go中使用正規表示式驗證密碼的方法如下:定義正規表示式模式,符合最低密碼要求:至少8個字符,包含小寫字母、大寫字母、數字和特殊字符。使用regexp套件中的MustCompile函式編譯正規表示式模式。使用MatchString方法測試輸入字串是否與正規表示式模式相符。

PHP正規表示式:精確匹配與排除模糊包含 PHP正規表示式:精確匹配與排除模糊包含 Feb 28, 2024 pm 01:03 PM

PHP正規表示式:精確匹配與排除模糊包含正規表示式是一種強大的文字匹配工具,能夠幫助程式設計師在處理文字時進行高效的搜尋、替換和篩選。在PHP中,正規表示式也被廣泛應用於字串處理和資料匹配。本文將重點介紹在PHP中如何進行精確配對和排除模糊包含的操作,同時結合具體的程式碼範例進行說明。精確匹配精確匹配意味著只匹配符合完全條件的字串,不匹配任何變種或包含額外字

中文字元過濾:PHP正規表示式實踐 中文字元過濾:PHP正規表示式實踐 Mar 24, 2024 pm 04:48 PM

PHP是一種廣泛應用的程式語言,特別在Web開發領域中非常流行。在網路開發過程中,經常會遇到需要對使用者輸入的文字進行過濾、驗證等操作,其中字元過濾是一項十分重要的操作。本文將介紹如何使用PHP中的正規表示式來實現中文字元過濾的功能,並給出具體的程式碼範例。首先,我們要先明確一下中文字元的Unicode範圍是從u4e00到u9fa5,也就是所有的漢字都處於這個範圍

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

See all articles