Rumah pembangunan bahagian belakang Tutorial 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>
Salin selepas log masuk

 以上就是使用正则表达式进行xml数据验证的代码实例详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bolehkah saya membuka fail XML menggunakan PowerPoint? Bolehkah saya membuka fail XML menggunakan PowerPoint? Feb 19, 2024 pm 09:06 PM

Bolehkah fail XML dibuka dengan PPT? XML, Extensible Markup Language (Extensible Markup Language), ialah bahasa markup universal yang digunakan secara meluas dalam pertukaran data dan penyimpanan data. Berbanding dengan HTML, XML lebih fleksibel dan boleh menentukan tag dan struktur datanya sendiri, menjadikan penyimpanan dan pertukaran data lebih mudah dan bersatu. PPT, atau PowerPoint, ialah perisian yang dibangunkan oleh Microsoft untuk membuat pembentangan. Ia menyediakan cara yang komprehensif untuk

Pengesahan ungkapan biasa PHP: pengesanan format nombor Pengesahan ungkapan biasa PHP: pengesanan format nombor Mar 21, 2024 am 09:45 AM

Pengesahan ungkapan biasa PHP: Pengesanan format nombor Semasa menulis program PHP, selalunya perlu untuk mengesahkan data yang dimasukkan oleh pengguna Salah satu pengesahan biasa adalah untuk memeriksa sama ada data mematuhi format nombor yang ditentukan. Dalam PHP, anda boleh menggunakan ungkapan biasa untuk mencapai pengesahan jenis ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengesahkan format nombor dan memberikan contoh kod khusus. Mula-mula, mari kita lihat keperluan pengesahan format nombor biasa: Integer: hanya mengandungi nombor 0-9, boleh bermula dengan tanda tambah atau tolak dan tidak mengandungi titik perpuluhan. titik terapung

Ungkapan biasa PHP: padanan tepat dan pengecualian kemasukan kabur Ungkapan biasa PHP: padanan tepat dan pengecualian kemasukan kabur Feb 28, 2024 pm 01:03 PM

Ungkapan Biasa PHP: Padanan Tepat dan Pengecualian Ungkapan tetap kemasukan kabur ialah alat padanan teks yang berkuasa yang boleh membantu pengaturcara melakukan carian, penggantian dan penapisan yang cekap semasa memproses teks. Dalam PHP, ungkapan biasa juga digunakan secara meluas dalam pemprosesan rentetan dan pemadanan data. Artikel ini akan menumpukan pada cara melakukan pemadanan tepat dan mengecualikan operasi kemasukan kabur dalam PHP dan akan menggambarkannya dengan contoh kod khusus. Padanan tepat Padanan tepat bermaksud padanan hanya rentetan yang memenuhi syarat yang tepat, bukan sebarang variasi atau perkataan tambahan.

Bagaimana untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa? Bagaimana untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa? May 31, 2024 pm 01:04 PM

Untuk mengesahkan alamat e-mel di Golang menggunakan ungkapan biasa, ikut langkah berikut: Gunakan regexp.MustCompile untuk mencipta corak ungkapan biasa yang sepadan dengan format alamat e-mel yang sah. Gunakan fungsi MatchString untuk menyemak sama ada rentetan sepadan dengan corak. Corak ini merangkumi kebanyakan format alamat e-mel yang sah, termasuk: Nama pengguna tempatan boleh mengandungi huruf, nombor dan aksara khas: !.#$%&'*+/=?^_{|}~-`Nama domain mesti mengandungi sekurang-kurangnya Satu huruf, diikuti dengan huruf, nombor atau sempang Domain peringkat teratas (TLD) tidak boleh lebih daripada 63 aksara.

Cara menggunakan pengesahan data excel-Cara menggunakan pengesahan data excel Cara menggunakan pengesahan data excel-Cara menggunakan pengesahan data excel Mar 04, 2024 pm 12:25 PM

Adakah anda tahu cara menggunakan pengesahan data excel? Di bawah ini, editor akan membawa anda cara menggunakan pengesahan data excel diperlukan Tetapkan sel untuk pilihan lungsur turun, seperti yang ditunjukkan dalam rajah di bawah: 2. Kemudian klik [Data] pada bar menu, seperti yang ditunjukkan dalam rajah di bawah: 3. Selepas membuka menu data, anda akan melihat [ Pilihan Pengesahan Data], klik [Data] Selepas pengesahan], teruskan klik [Pengesahan Data] dalam pilihan terbuka untuk membuka tetingkap pengesahan data untuk tetapan, seperti yang ditunjukkan dalam rajah di bawah: Di atas adalah keseluruhan kandungan cara menggunakan pengesahan data excel yang dibawa oleh editor Saya harap ia akan membantu anda.

Bagaimana untuk memadankan cap masa menggunakan ungkapan biasa dalam Go? Bagaimana untuk memadankan cap masa menggunakan ungkapan biasa dalam Go? Jun 02, 2024 am 09:00 AM

Dalam Go, anda boleh menggunakan ungkapan biasa untuk memadankan cap masa: susun rentetan ungkapan biasa, seperti yang digunakan untuk memadankan cap masa ISO8601: ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Gunakan fungsi regexp.MatchString untuk menyemak sama ada rentetan sepadan dengan ungkapan biasa.

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Pustaka Java untuk penghuraian XML dibandingkan: Mencari penyelesaian terbaik Pustaka Java untuk penghuraian XML dibandingkan: Mencari penyelesaian terbaik Mar 09, 2024 am 09:10 AM

Pengenalan XML (Extensible Markup Language) ialah format popular untuk menyimpan dan menghantar data. Menghuraikan XML dalam Java adalah tugas yang diperlukan untuk banyak aplikasi, daripada pertukaran data kepada pemprosesan dokumen. Untuk menghuraikan XML dengan cekap, pembangun boleh menggunakan pelbagai perpustakaan Java. Artikel ini akan membandingkan beberapa pustaka penghuraian XML yang paling popular, memfokuskan pada ciri, fungsi dan prestasinya untuk membantu pembangun membuat pilihan termaklum. DOM (Document Object Model) parsing library JavaXMLDOMAPI: pelaksanaan DOM standard yang disediakan oleh Oracle. Ia menyediakan model objek yang membolehkan pembangun mengakses dan memanipulasi dokumen XML. DocumentBuilderFactoryfactory=D

See all articles