1 xml头部介绍 以spring.xml为例
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">
<bean></bean><!-- 引用默认命名空间1.1 -->
<jee:jndi-lookup jndi-name=""></jee:jndi-lookup><!-- 引用jee命名空间1.2 -->
</beans>
1.1 xmlns="http://www.springframework.org/schema/beans":
设置spring.xml的默认命名空间为http://www.springframework.org/schema/beans,一定不要把http://www.springframework.org/schema/beans当URL处理。
xml的命名空间的作用就如同java里的包的作用差不多。默认命名空间的作用就是<bean>之类的,没有前缀的元素是引用的默认命名空间。
1.2 xmlns:jee="http://www.springframework.org/schema/jee":
设置spring.xml的以<jee:xxx/>引用的元素命名空间为http://www.springframework.org/schema/jee。
1.3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance":XML Schema 实例命名空间,表明这个xml改遵循那个W3C规范,一般情况下用xsi前缀表示,
当拥有了实例命名空间之后,就可以使用xsi:schemaLocation来指定与命名空间有关的约束xsd文件的位置,
用xsi:noNamespaceSchemaLocation指定无命名空间的约束xsd文件的位置。
1.4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd":
指定命名空间http://www.springframework.org/schema/beans的xsd的位置http://www.springframework.org/schema/beans/spring-beans-2.0.xsd,后半部分
为URL。我的IDE为myeclipse,它会将xml有关的xsd存到本地myeclipse的configuration\org.eclipse.osgi\bundles\90\1\.cp\catalog-xsd目录下,这样在无法
访问网络的时候也可以进行xml验证了。
2 xml与xsd
2.1 xml与xsd的关系:
xml可以不依赖于xsd,但是如果这个xml引用了xsd那么必须遵守这个xsd的规范。
2.2 xml写法上与xsd的对应关系:
示例xsd:
来源http://www.w3school.com.cn/schema/schema_schema.asp
note.xsd
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns="http://www.w3school.com.cn" xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" targetNamespace="http://www.w3school.com.cn">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string" />
<xs:element name="from" type="xs:string" />
<xs:element name="heading" type="xs:string" />
<xs:element name="body" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
简单解释一下这个xsd
xmlns="http://www.w3school.com.cn":默认命名空间为http://www.w3school.com.cn
xmlns:xs="http://www.w3.org/2001/XMLSchema":用前缀xs表示的元素或属性来自命名空间http://www.w3.org/2001/XMLSchema
targetNamespace="http://www.w3school.com.cn":显示被此schema定义的原属(to,from,heading,body,note)来自命名空间http://www.w3school.com.cn
elementFormDefault="qualified":这个属性对xml的写法有很大的影响。参考这位同学的http://xinklabi.iteye.com/blog/753767
note.xml
<?xml version="1.0"?>
<note xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
note.xml与note.xsd对应关系:
note.xml的xmlns节点与note.xsd的targetNamespace节点值是对应关系即:
xmlns="http://www.w3school.com.cn"<------>targetNamespace="http://www.w3school.com.cn"
note.xml的xmlns节点与note.xsd的xmlns节点的值是对应关系:
xmlns="http://www.w3school.com.cn"<------>xmlns="http://www.w3school.com.cn"
2.3 xml引用xsd的方法:
2.3.1 xsi:schemaLocation="http://www.w3school.com.cn note.xsd" 命名空间引用
2.3.2 无名命名空间
3 关于xsd的验证
3.1 xml书写时xsd验证:
3.1.1
在xsi:schemaLocation中引用,写法xsi:schemaLocation="命名空间 xsd所在位置"
3.1.2
在xsi:noNamespaceSchemaLocation中引用,写法xsi:noNamespaceSchemaLocation="xsd所在位置"
3.1.3
如果希望Myeclipse在书写xml时候进行验证,如果不能联网的情况下,则需要手动添加xsd文件
xml catalog ---> add ----> file System ----> 选择你的xsd文件位置
key type 选择 Schema Location
key 则填写你在xsi:schemaLocation中定义的命名空间引用的xsd位置作为key
3.2 xml书写时DTD验证:
DTD是xsd的前辈,作用是一样的,引用方式如下
3.2.1
直接在xml头部定义
<!DOCTYPE quotations [
<!ELEMENT quotations (quote*)>
<!ELEMENT quote (saying, attribution, era)>
<!ATTLIST quote quoteid CDATA #REQUIRED>
]>
<quotations>
<quote quoteid="A42"/>
</quotations>
3.2.2
<!DOCTYPE 根元素 SYSTEM "文件名">
3.2.3
Myeclipse的DTD验证
xml catalog ---> add ----> file System ----> 选择你的DTD位置
key type 选择 url
key xml引用的DTD的位置
如果选择的key type为Public ID则key要选择xml的公共标识符
3.3 spring运行时xml验证
http://blog.csdn.net/bluishglc/article/details/7596118的文章,
总体的来说就是xsi:schemaLocation中定义的xsd URL位置对应到META-INF/spring.schemas文件下的xsd的物理位置。
要把运行时验证和书写时验证分开对待。
分享到:
相关推荐
xml生成xsd 使用方法:java -jar trang.jar EchoRequest.xml EchoRequest.xsd
XML生成XSD xml生成xsd 生成xsd工具 工具 使用方法: java -jar trang.jar xml文件绝对路径 要生成的xsd文件绝对路径 例如在当前目录有文件aaa.xml,需要生成xsd文件名为aaa,并存放在当前目录: java -jar trang....
本文将深入探讨如何使用Castor解析XML,并通过XSD(XML Schema Definition)进行XML校验。 ### Castor XML解析 1. **安装与配置**:首先,你需要在项目中引入Castor的依赖库。如果你使用的是Maven,可以在pom.xml...
XML转XSD\DTD工具 W3C XML Schema XSD 工具
总之,XML与XSD之间的关系是,XML提供了数据的表达方式,而XSD则为XML提供了结构化和标准化的框架,确保了XML文档的准确性和一致性。理解和掌握XML与XSD之间的转化和验证方法,对于处理和维护基于XML的数据至关重要...
生成的Java类包含了与XML元素相对应的字段和方法,方便在Java程序中直接操作。 6. **使用Java类处理XML**:在Java代码中,可以使用JAXB提供的API来实例化Java类,并读取或写入XML数据。例如,使用`Unmarshaller`...
"xml2xsd2java2.rar"压缩包中的工具类可能是用于帮助开发者进行XML与XSD之间的相互转换,以及将这些定义转换为Java对象,从而简化处理过程。 1. XML到XSD转换:这个工具可能包含功能,将一个XML文档转换成对应的XSD...
默认情况下,生成的XSD文件名与原始XML文件相同,但后缀为`.xsd`。 2. **定制XSD文件**:如果您希望自定义生成的XSD文件名或者输出路径,可以通过添加额外参数来实现: ```plaintext xsd.exe test.xml /schema:...
这是从google的地址下载的trang,最新版,根目录下的jar可根据xml生成xsd文件,下面介绍使用: 把jar放在 d:\trang 下 假设在 d:\trang 下有一个xml文件person.xml 打开windows命令行,将当前位置cd变更到 d:\trang ...
在IT行业中,将XML转换为XSD的主要目的是为了确保XML数据的结构一致性与正确性。XSD定义了元素、属性、数据类型以及它们之间的关系,从而使得XML解析器可以检查XML文档是否符合预定义的规则,防止数据错误。这对于...
在IT领域,IDL(Interface Definition Language)、XML(eXtensible Markup Language)和XSD(XML Schema Definition)是三种至关重要的技术,它们在数据交换、接口定义和数据验证中发挥着核心作用。在这个"IDL+XML+...
XML Schema 的主要目标是为 XML 文档提供一种严格的形式化定义,从而确保文档的结构正确、数据有效,并能与其他系统进行准确的数据交换。 在深入探讨 XML Schema 的细节之前,理解一些基础知识是必要的,例如 ...
2. 如何关联XML文档与XSD:介绍如何在XML文档中引用XSD文件,例如通过`<xs:schema>`或`schemaLocation`属性。 3. 使用工具进行验证:提到一些常用的XML编辑器和验证工具,如XMLSpy、Visual Studio、XMLStarlet等,...
接下来,工具会根据这些信息生成一个符合模式的XML文档,这个文档可能包含所有可能的数据类型和结构,以便用户了解或测试与XSD兼容的XML数据应如何构造。 这个工具的源代码开放给用户,对于学习XML Schema和XML处理...
验证xml文件与xsd是否匹配
在Java开发中,XML(可扩展标记语言)和XSD(XML Schema定义)是常见的数据交换格式和技术。XML用于结构化数据的存储和传输,而XSD则为XML文档提供了语义验证的规则。本教程将详细介绍如何在Java环境中生成XML和XSD...
XML 架构预计将在未来的 XML 处理中扮演核心角色,尤其是在 Web 服务领域,它将作为构建更高级别抽象的重要基础之一.
作为备忘录,实现xml转换成xsd,然后由xsd转换到javabean,最后在xml和javabean之间互相转换。 说明网址:http://blog.csdn.net/beanjoy/article/details/38272051
这样的工具通常会读取XML文档,然后比对XSD文件,检查XML文档中的元素、属性和值是否与XSD中定义的规则相匹配。如果存在不匹配,工具会返回错误或警告信息。 使用这样的代码或程序进行XML和XSD的检测,有以下几点...
xml to xsd 进而实现XML与javaBean互转,并且附上具体的使用博客 http://blog.csdn.net/sinat_34979884/article/details/78501892