- 浏览: 412523 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
锦毛鼠:
嗯!不错哦,先支持一下!
MySQL-Front 5 注册码 -
bolan392:
我公司现在也想用这个工具,对于商业用户所使用的版本在国内该如何 ...
IP端口扫描工具(Tenable Nessus)的简介 -
exe:
如果目录结果不变,ant其实也不需要怎么修改,直接copy。
Maven 和 ANT 的区别 -
wx3957156:
wx3957156 写道灰常好!灰常好!
利用Java生成静态HMTL页面的方法收集 -
wx3957156:
灰常好!灰常好!
利用Java生成静态HMTL页面的方法收集
使用 xmllint + schema 校验 xml 文档
XML 校验工具的作用就是检查我们写的 XML 源文件是否符合所声明要遵循的规范,xmllint 就是一款很实用的 XML 校验器,下面通过一个例子,演示一下 xmllint 如何结合 schema 对xml 文档进行校验。本文未涉及 schema 的语法介绍。
首先建立一份 xml 文档,命名为 po.xml,其内容如下:
<?xml
version
="1.0"
?>
<purchaseOrder orderDate ="1999-10-20" >
<shipTo country ="US" >
<name> Alice Smith</name>
<street> 123 Maple Street</street>
<city> Mill Valley</city>
<state> CA</state>
<zip> 90952</zip>
</shipTo>
<billTo country ="US" >
<name> Robert Smith</name>
<street> 8 Oak Avenue</street>
<city> Old Town</city>
<state> PA</state>
<zip> 95819</zip>
</billTo>
<comment> Hurry, my lawn is going wild!</comment>
<items>
<item partNum ="872-AA" >
<productName> Lawnmower</productName>
<quantity> 1</quantity>
<USPrice> 148.95</USPrice>
<comment> Confirm this is electric</comment>
</item>
<item partNum ="926-AA" >
<productName> Baby Monitor</productName>
<quantity> 1</quantity>
<USPrice> 39.98</USPrice>
<shipDate> 1999-05-21</shipDate>
</item>
</items>
</purchaseOrder>
<purchaseOrder orderDate ="1999-10-20" >
<shipTo country ="US" >
<name> Alice Smith</name>
<street> 123 Maple Street</street>
<city> Mill Valley</city>
<state> CA</state>
<zip> 90952</zip>
</shipTo>
<billTo country ="US" >
<name> Robert Smith</name>
<street> 8 Oak Avenue</street>
<city> Old Town</city>
<state> PA</state>
<zip> 95819</zip>
</billTo>
<comment> Hurry, my lawn is going wild!</comment>
<items>
<item partNum ="872-AA" >
<productName> Lawnmower</productName>
<quantity> 1</quantity>
<USPrice> 148.95</USPrice>
<comment> Confirm this is electric</comment>
</item>
<item partNum ="926-AA" >
<productName> Baby Monitor</productName>
<quantity> 1</quantity>
<USPrice> 39.98</USPrice>
<shipDate> 1999-05-21</shipDate>
</item>
</items>
</purchaseOrder>
然后为 po.xml 写的 schema 文件,取名为 po.xsd,内容如下:
<xsd:schema
xmlns:xsd
="http://www.w3.org/2001/XMLSchema"
>
<xsd:annotation>
<xsd:documentation xml:lang ="en" >
Purchase order schema for Example.com.
Copyright 2000 Example.com. All rights reserved.
</xsd:documentation>
</xsd:annotation>
<xsd:element name ="purchaseOrder" type ="PurchaseOrderType" />
<xsd:element name ="comment" type ="xsd:string" />
<xsd:complexType name ="PurchaseOrderType" >
<xsd:sequence>
<xsd:element name ="shipTo" type ="USAddress" />
<xsd:element name ="billTo" type ="USAddress" />
<xsd:element ref ="comment" minOccurs ="0" />
<xsd:element name ="items" type ="Items" />
</xsd:sequence>
<xsd:attribute name ="orderDate" type ="xsd:date" />
</xsd:complexType>
<xsd:complexType name ="USAddress" >
<xsd:sequence>
<xsd:element name ="name" type ="xsd:string" />
<xsd:element name ="street" type ="xsd:string" />
<xsd:element name ="city" type ="xsd:string" />
<xsd:element name ="state" type ="xsd:string" />
<xsd:element name ="zip" type ="xsd:decimal" />
</xsd:sequence>
<xsd:attribute name ="country" type ="xsd:NMTOKEN"
fixed ="US" />
</xsd:complexType>
<xsd:complexType name ="Items" >
<xsd:sequence>
<xsd:element name ="item" minOccurs ="0" maxOccurs ="unbounded" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name ="productName" type ="xsd:string" />
<xsd:element name ="quantity" >
<xsd:simpleType>
<xsd:restriction base ="xsd:positiveInteger" >
<xsd:maxExclusive value ="100" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name ="USPrice" type ="xsd:decimal" />
<xsd:element ref ="comment" minOccurs ="0" />
<xsd:element name ="shipDate" type ="xsd:date" minOccurs ="0" />
</xsd:sequence>
<xsd:attribute name ="partNum" type ="SKU" use ="required" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- Stock Keeping Unit, a code for identifying products -->
<xsd:simpleType name ="SKU" >
<xsd:restriction base ="xsd:string" >
<xsd:pattern value ="\d{3}-[A-Z]{2}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
<xsd:annotation>
<xsd:documentation xml:lang ="en" >
Purchase order schema for Example.com.
Copyright 2000 Example.com. All rights reserved.
</xsd:documentation>
</xsd:annotation>
<xsd:element name ="purchaseOrder" type ="PurchaseOrderType" />
<xsd:element name ="comment" type ="xsd:string" />
<xsd:complexType name ="PurchaseOrderType" >
<xsd:sequence>
<xsd:element name ="shipTo" type ="USAddress" />
<xsd:element name ="billTo" type ="USAddress" />
<xsd:element ref ="comment" minOccurs ="0" />
<xsd:element name ="items" type ="Items" />
</xsd:sequence>
<xsd:attribute name ="orderDate" type ="xsd:date" />
</xsd:complexType>
<xsd:complexType name ="USAddress" >
<xsd:sequence>
<xsd:element name ="name" type ="xsd:string" />
<xsd:element name ="street" type ="xsd:string" />
<xsd:element name ="city" type ="xsd:string" />
<xsd:element name ="state" type ="xsd:string" />
<xsd:element name ="zip" type ="xsd:decimal" />
</xsd:sequence>
<xsd:attribute name ="country" type ="xsd:NMTOKEN"
fixed ="US" />
</xsd:complexType>
<xsd:complexType name ="Items" >
<xsd:sequence>
<xsd:element name ="item" minOccurs ="0" maxOccurs ="unbounded" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name ="productName" type ="xsd:string" />
<xsd:element name ="quantity" >
<xsd:simpleType>
<xsd:restriction base ="xsd:positiveInteger" >
<xsd:maxExclusive value ="100" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name ="USPrice" type ="xsd:decimal" />
<xsd:element ref ="comment" minOccurs ="0" />
<xsd:element name ="shipDate" type ="xsd:date" minOccurs ="0" />
</xsd:sequence>
<xsd:attribute name ="partNum" type ="SKU" use ="required" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- Stock Keeping Unit, a code for identifying products -->
<xsd:simpleType name ="SKU" >
<xsd:restriction base ="xsd:string" >
<xsd:pattern value ="\d{3}-[A-Z]{2}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
使用 xmllint 对 po.xml 文件进行校验:
$ xmllint -schema po.xsd po.xml
如果无出错信息,就说明校验通过了。
校验1个xml是否格式正确,可用如下命令:
$xmllint example.xml
发表评论
-
iptables封ip段
2011-09-28 21:01 1631linux下实用iptables封ip段的一些常见命令: ... -
linux gzip 命令详解
2010-06-29 09:08 1930linux gzip 命令详解 减少文件大小有两个明显的好 ... -
Nginx 介绍
2010-06-19 11:16 962一、介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务 ... -
iptable 使用实例
2010-03-19 13:57 830iptables使用实例 首先 ... -
Linux操作系统下Route命令详细使用说明
2010-01-18 16:00 1438Linux 操作系统下Route 命令详细 ... -
init6与reboot的区别
2010-01-13 21:08 1399init命令用于改变操作系统的运行级别。 Init 6是重新 ... -
lsof 命令详解
2010-01-08 17:18 1994lsof 命令详解 lsof全名list opened f ... -
linux id 命令详解
2010-01-07 15:52 5146linux id 命令详解 功能说明:显示用户的 ... -
xhost +
2010-01-07 15:42 1092xhost是用来控制X server访问权限的。 通常当你从 ... -
Shell 条件判断总结
2010-01-06 13:57 1005Shell 条件判断总结 UNIX ... -
查看硬盘信息的linux命令
2010-01-05 11:13 3373[root@localhost ~]# fdisk -l D ... -
Linux面试题
2009-12-18 13:37 1456Linux面试题 一.填空题 ... -
Linux一句话精彩问答
2009-12-04 21:35 23420001 修改主机名(陈绪) vi /etc/sy ... -
tar命令详解
2009-12-04 21:18 1358tar命令详解 ... -
linux gzip 命令详解
2009-12-04 21:11 1989linux gzip 命令详解 减 ... -
什么是xinetd?
2009-11-26 09:27 1538什么是xinetd? 大家 ... -
inetd Internet 超级服务器
2009-11-26 09:19 697inetd ... -
How to create user on linux
2009-11-24 09:17 980Create a user named nxuser. 1. ... -
Linux 指令篇:文件系统--sync
2009-11-23 15:19 835名称 : sync 使用权限 : 系统管理者 ... -
Linux/UNIX命令dd简介
2009-11-23 15:08 954dd 是 Linux/UNIX 下的一个非常有用的命令 ...
相关推荐
《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用》语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前Web开发中经常使用的功能,具有相当高的...
XML Schema(XSD)作为一种用于描述XML文档结构和数据类型的标准,提供了更为强大的数据类型支持和约束定义能力,相较于早期的DTD(Document Type Definition),XSD被更多地应用于XML文档的校验中。 然而,Java中...
5. **XmlSchema类**:该类用于加载和处理XML Schema文件,可以创建一个XmlSchema对象来读取XSD文件,并构建出XML文档必须遵循的结构模型。 6. **XmlDocument类**:此类代表XML文档,提供加载XML数据、验证文档以及...
这篇博客文章“根据XML Schema生成XML”探讨了如何使用XML Schema来创建符合规范的XML文档。 首先,理解XML Schema的基本元素是关键。XML Schema定义了一系列的元素(element)、属性(attribute)和数据类型(data...
w3c XML Schema 中文教程CHM文档
Schema,全称为XML Schema Definition (XSD),是W3C推荐的XML文档结构的规范,用于定义XML文档的结构、数据类型和约束,使得XML文档更加正规化,提高数据交换的准确性和可靠性。 在“XML+Schema ppt课件”中,我们...
Schema校验通常发生在数据库、XML文档、JSON数据等场景,确保数据符合预定义的格式和规则,从而保证数据的一致性和准确性。 在描述中提到的“博文链接:https://jarip.iteye.com/blog/1953352”,虽然具体内容未给...
DOM4J提供了一种简单的方法来加载XML和XSD文件,然后使用Schema类进行校验。以下是一个基本的步骤概述: 1. 加载XSD文件:使用DOM4J的DocumentHelper类的parse方法,传入XSD文件的路径,得到一个SchemaFactory对象...
Notepad++的XML插件正为此目的而设计,它可以自动整理XML文件的缩进、换行,使得文档结构清晰易读。 在Notepad++中安装XML格式化工具非常简单。首先,你需要确保下载了与你的系统匹配的版本,即32位或64位的安装...
以下是一个使用JAXB(Java Architecture for XML Binding)进行XML Schema校验的简单示例: ```java import javax.xml.XMLConstants; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; ...
XML Schema定义(XSD)使用XML语法,使得XML文档的验证和处理更加方便。在这个教程中,我们将深入探讨XML Schema的核心概念、优势以及如何在实际应用中使用。 1. XML Schema简介 XML Schema的主要目标是定义XML文档...
例如,它可以自动完成XML标签,验证XML文档是否符合指定的DTD(Document Type Definition)或XSD(XML Schema)规范,还可以进行XPath查询,方便用户快速定位到XML文档中的特定节点。此外,XML Tools还支持XML到HTML...
【XML与XMLSchema】 ...了解并掌握XML和XML Schema对于进行Web服务、数据交换、配置文件管理和各种数据存储等任务至关重要。它们是现代信息技术中不可或缺的一部分,广泛应用于软件开发、网络通信和数据集成等领域。
1. **XML验证**:XMLTools可以自动验证XML文档是否符合其指定的DTD(文档类型定义)或XSD(XML Schema定义)。这有助于确保文档的结构正确无误,遵循预设的规则。 2. **XML格式化**:此插件能够将杂乱无章的XML代码...
本项目“(jsp+servlet+xml)xml绑定”着重于Java技术如何与XML进行交互,通过JSP(JavaServer Pages)和Servlet来实现XML文档的解组、编组以及动态内容修改。以下将详细介绍这个过程中的关键知识点。 首先,XML...
IEC61850 SCL文件Schema校验 1、支持Schema1.0和Schema2.0版本 2、支持自定义Schema版本 3、支持信息输出,格式包括PDF,CSV,TXT
本篇文章将深入探讨如何根据XML文件生成对应的XSD schema文件,以便更好地管理和验证XML文档。 首先,我们需要理解XSD的作用。XSD文件定义了一系列规则,这些规则描述了XML文档应该包含哪些元素、属性,以及它们...
[实验目的]: 1、掌握使用XMLSpy软件创建DTD和Schema文档 2、掌握在XML文档如何引入DTD和Schema,并验证有效 3、掌握DTD中声明元素、属性的方法 4、掌握Schema中声明元素,属性,类型的方法
"XML Schema知识点" XML Schema是XML语言为基础的,它用于可替代DTD。它用于描述XML文档的结构。XML Schema语言也被...XML Schema是XML文档的结构描述语言,它具有强大的功能和可扩展性,是XML文档的标准描述语言。
### Solrconfig.xml 和 Schema.xml 说明 #### Solrconfig.xml 概述 Solrconfig.xml 是 Apache Solr 的核心配置文件之一,主要用于定义 Solr 实例如何处理文档的索引与查询请求。该文件中包含了多种配置项,用于...