`
Ivan_Pig
  • 浏览: 388222 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

5分钟搞定Schema

阅读更多
事先声明:搞定不是精通,只是能够运用!
其实schema很简单,之前写过DTD,比DTD学习成本还低!最近做的项目基于文件系统的,一堆的xml文件,所以想写个验证,也方便IDE操作,既然推荐Schema,那就用Schema
不废话,看xml文件。
<?xml version="1.0" encoding="gb2312"?>
<tests id="1" name="2">
   <name>Ivan</name>
   <test id="test1">
     <name>hi</name>
   </test>
   <test id="test2">
     <name>hello</name> 
   </test>
</tests>

这个应该算是个比较典型的xml文件了。看schema怎么写。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.iteye.com"
        xmlns:tns="http://www.iteye.com"
        elementFormDefault="qualified">
    <!-- 一个tests标签-->
    <xs:element name="tests">
        <!-- 由于tests标签由属性和其它标签组成,所以是复合类型 -->
        <xs:complexType>
            <!-- 这是一个序列,包含所有的子标签-->
            <xs:sequence>
                <!--叫name的子标签-->
                <xs:element name="name"/>
                 <!--叫test的子标签,maxOccurs是出现的次数,这里不定,能多次出现-->
                <xs:element name="test" maxOccurs="unbounded">
                    <!--又是一个复合类型-->
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="name"/>
                        </xs:sequence>
                        <!--test的id属性-->
                        <xs:attribute name="id"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <!--testsde id和name属性-->
            <xs:attribute name="id"/>
            <xs:attribute name="name"/>
        </xs:complexType>
    </xs:element>
</xs:schema>

很简单吧!其实就是个xml文件而已!敲一遍就知道是什么意思了!
将Schema添加到xml文件里面,如下:
<?xml version="1.0" encoding="gb2312"?>
<tests id="1" name="2"  xmlns="http://www.stsoft.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.iteye.com ../test.xsd">
   <name>Ivan</name>
   <test id="test1">
     <name>hi</name>
   </test>
   <test id="test2">
     <name>hello</name> 
   </test>
</tests>

这样就可以了,../test.xsd是相对路径,如果test.xsd和xml在同一目录下,直接写名字就可以了。
应该没多少人会用到Schema,知识积累,以备后用
2
2
分享到:
评论
1 楼 liyaxi 2009-02-15  
好东西!茅塞顿开!

相关推荐

    XML 打包上传 (包括XSD xml schema)-自己的xml家当

    definitive+XML+Schema中文版本 XML课程资料 XML+Schema官方教程(9loong中文版)修正版2009 实战XML第二版 XML+指南 XML笔记 轻松搞定XML XML手册+第4版

    轻松搞定XML、XML、XML

    XML,全称Extensible Markup ...总的来说,“轻松搞定XML”这个资源可能涵盖了XML的基础概念、语法、验证、解析、查询以及在实际开发中的应用。通过学习,你可以掌握XML的核心知识,从而在配置开发的世界中游刃有余。

    轻松搞定xml 轻松搞定xml

    通过阅读《轻松搞定XML》这本书,你将深入理解XML的原理,学习如何创建有效的XML文档,掌握XML解析和验证技术,并了解XML在实际项目中的应用。配合`说明.htm`、`轻松搞定xml.pdf`及`readme.txt`,你将获得全方位的...

    12步搞定apacheds

    ### 5. 导入根的语法定义 #### 38.1 根文件 hrss-initial-data.ldif 定义 `ldif`(LDAP Data Interchange Format)文件是一种文本格式,用于描述目录数据的结构。在`hrss-initial-data.ldif`中,你会看到一系列的...

    轻松搞定XML电子资源下载

    五、XML Schema与DTD 1. DTD(Document Type Definition):DTD用于定义XML文档的结构和数据类型,是XML的早期验证方式。 2. XML Schema:XML Schema是更现代、更强大的验证工具,提供更复杂的类型系统和数据约束...

    轻松搞定XML(XML开发基础)

    2. 架构(XSD,XML Schema Definition):XSD是另一种更为现代的XML结构定义方式,相比DTD,它提供了更强大、更复杂的验证规则。 3. 名称空间(Namespace):在XML中,名称空间用于解决命名冲突问题,允许使用相同...

    轻松搞定xml

    5. **解析XML**: 解析XML文档有两种主要方式:DOM(Document Object Model)和SAX(Simple API for XML)。DOM将整个XML文档加载到内存中,形成一个树形结构,便于访问和修改;SAX则采用事件驱动的方式,逐行读取,...

    轻轻松松搞定XML(PDF).rar

    本资源"轻轻松松搞定XML"是一份PDF教程,旨在帮助读者深入理解和掌握XML的核心概念与技术。 XML的设计原则是简单、通用和可扩展。它的语法严格,要求元素都进行闭合,这使得数据结构清晰,易于解析。XML文档由一...

    轻松搞定XML.pdf

    5. **DTD(Document Type Definition)或XSD(XML Schema Definition)**:这两种都是用来定义XML文档结构的规范,用于验证XML文档是否符合预设的规则。 6. **解析器**:XML解析器读取XML文档并将其转换为易于处理...

    轻松搞定XML

    5. XML Schema和DTD:讲解XML Schema和Document Type Definition(DTD)用于验证XML文档结构和内容的工具。 6. 实战应用:通过案例分析,展示XML在实际项目中的应用,如Web服务、配置文件、数据交换等。 7. XML相关...

    轻松搞定XML(xml学习经典)

    XML的DTD(Document Type Definition)和XSD(XML Schema Definition)是两种验证XML文档结构的方法。DTD用来定义元素、属性的规则,确保文档符合预定的结构。而XSD更强大,支持数据类型、约束和复杂结构的定义,是...

    轻松搞定XML语言(要下的快)

    在本资源包中,"轻松搞定XML"这本书将引导你深入理解这一重要的数据描述语言。 首先,XML的基本结构包括元素、属性和标签。元素是XML文档的核心,它们描述了数据的结构和内容。例如,`&lt;book&gt;`可以表示一本书,而`...

    轻轻松松搞定XML

    ### 轻轻松松搞定XML:全面解析及应用实践 #### 一、XML概述与重要性 ##### XML:可扩展标记语言 可扩展标记语言(XML,eXtensible Markup Language)是一种用于存储和传输数据的标准标记语言。与HTML相比,XML...

    《轻松搞定XML》的范例源代码和学习笔记

    还有DTD(Document Type Definition)或XSD(XML Schema Definition),它们是用来定义XML文档结构和数据类型的规范,确保数据的一致性和准确性。 源代码部分则可能包含XML解析、DOM(Document Object Model)、SAX...

    org.json.JSONObject 一个文件搞定

    9. JSON Schema验证:虽然`org.json`库不包含JSON Schema验证功能,但可以结合其他库如`json-schema-validator`来实现JSON数据的规范验证。 10. 性能与兼容性:`org.json`库小巧且轻量级,适合小型项目或对性能要求...

    xfile1.2.6所需要的所有jar

    "替换jar之后就都搞定了",这强调了解决问题的关键在于找到正确的`jar`文件版本,这也体现了Java生态系统的复杂性和多样性。 现在让我们深入探讨一下`jar`文件及其在Java开发中的重要性: 1. **代码封装和分发**:...

    由浅入深掌握大数据列式存储NoSQL数据库Kudu视频教程

    手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,... 第五章:Kudu原理深入搞定面试题 1.Table与Schema原理分析 2.Kudu数据模型分析 3.Kudu数据存储流程 4.Kudu数据读取流程 5.Kudu数据更新流程

Global site tag (gtag.js) - Google Analytics