`
Ivan_Pig
  • 浏览: 381990 次
  • 性别: 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版

    12步搞定apacheds

    对apacheds的安装,schema定义,导入至DIT进行了详细的说明。

    快速搞定移动端混合开发基础

    3.2、拦截URL Schema 3.3、注入JS API 3.4、带回调的JSBridge 3.5、JSBridge的开源实现 四、实战案例——开发一个简单的混合APP 写在前面 文章有点长,请注意保护您的眼睛,如若引起身体不适请自行关闭! 之前是定...

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

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

    vivadohls闪退问题解决方法

    vivadohls闪退问题解决方法,直接删掉一个隐藏文件就能搞定,亲侧可用哦

    Toad 使用快速入门

    可以自定义存储过程得模板,在新建存储过程的时候,自动生成程序的框架可以方便的调用Schema Browser,把鼠标定位于某个对象上,F4,Schema Browser打开该对象的详细描述,帮助顺利快速开发程序。支持代码自动更正,...

    Java语言基础下载

    搞定Action对象 643 处理异常 643 Action的分类 643 Struts Action Mapping 646 使用ActionForward导航 647 Struts ActionForm Bean捕获表单数据 648 ActionForm的处理流程 649 Struts的其他组件 652 内容总结 653 ...

    无限菜单之 xml+popup 版(IE5.5+)

    既然大胆假设了一把,那么就来小心求证一下:首先,用xsl来实现解析一级xml很容易搞定,使用xsl:for-each遍历生成子菜单,并且,如果子菜单中还有子xml数据,将这些子xml数据存在子菜单对应的数据岛中,以备后面处理...

    经典SQL语句大全

    12、说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())&gt;5 13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序...

    数据库操作语句大全(sql)

    12、说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())&gt;5 13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序...

    sql经典语句一部分

    12、说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())&gt;5 13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序...

Global site tag (gtag.js) - Google Analytics