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

XML与XSD

 
阅读更多

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工具

    xml生成xsd 使用方法:java -jar trang.jar EchoRequest.xml EchoRequest.xsd

    根据XML生成xsd

    XML生成XSD xml生成xsd 生成xsd工具 工具 使用方法: java -jar trang.jar xml文件绝对路径 要生成的xsd文件绝对路径 例如在当前目录有文件aaa.xml,需要生成xsd文件名为aaa,并存放在当前目录: java -jar trang....

    castor解析xml与xsd校验xml

    本文将深入探讨如何使用Castor解析XML,并通过XSD(XML Schema Definition)进行XML校验。 ### Castor XML解析 1. **安装与配置**:首先,你需要在项目中引入Castor的依赖库。如果你使用的是Maven,可以在pom.xml...

    XML转XSD\DTD工具

    XML转XSD\DTD工具 W3C XML Schema XSD 工具

    xml 文件与xsd文件的转化以及xsd验证xml的合法性

    总之,XML与XSD之间的关系是,XML提供了数据的表达方式,而XSD则为XML提供了结构化和标准化的框架,确保了XML文档的准确性和一致性。理解和掌握XML与XSD之间的转化和验证方法,对于处理和维护基于XML的数据至关重要...

    xml文件转xsd文件

    生成的Java类包含了与XML元素相对应的字段和方法,方便在Java程序中直接操作。 6. **使用Java类处理XML**:在Java代码中,可以使用JAXB提供的API来实例化Java类,并读取或写入XML数据。例如,使用`Unmarshaller`...

    xml2xsd2java2.rar

    "xml2xsd2java2.rar"压缩包中的工具类可能是用于帮助开发者进行XML与XSD之间的相互转换,以及将这些定义转换为Java对象,从而简化处理过程。 1. XML到XSD转换:这个工具可能包含功能,将一个XML文档转换成对应的XSD...

    XML生成XSD的方法

    默认情况下,生成的XSD文件名与原始XML文件相同,但后缀为`.xsd`。 2. **定制XSD文件**:如果您希望自定义生成的XSD文件名或者输出路径,可以通过添加额外参数来实现: ```plaintext xsd.exe test.xml /schema:...

    xml转xsd,trang.jar最新版

    这是从google的地址下载的trang,最新版,根目录下的jar可根据xml生成xsd文件,下面介绍使用: 把jar放在 d:\trang 下 假设在 d:\trang 下有一个xml文件person.xml 打开windows命令行,将当前位置cd变更到 d:\trang ...

    xml 转成xsd

    在IT行业中,将XML转换为XSD的主要目的是为了确保XML数据的结构一致性与正确性。XSD定义了元素、属性、数据类型以及它们之间的关系,从而使得XML解析器可以检查XML文档是否符合预定义的规则,防止数据错误。这对于...

    IDL+XML+XSD相互关联的例子

    在IT领域,IDL(Interface Definition Language)、XML(eXtensible Markup Language)和XSD(XML Schema Definition)是三种至关重要的技术,它们在数据交换、接口定义和数据验证中发挥着核心作用。在这个"IDL+XML+...

    XML Schema xsd XML Schema xsd

    XML Schema 的主要目标是为 XML 文档提供一种严格的形式化定义,从而确保文档的结构正确、数据有效,并能与其他系统进行准确的数据交换。 在深入探讨 XML Schema 的细节之前,理解一些基础知识是必要的,例如 ...

    xsd验证xml - 含

    2. 如何关联XML文档与XSD:介绍如何在XML文档中引用XSD文件,例如通过`&lt;xs:schema&gt;`或`schemaLocation`属性。 3. 使用工具进行验证:提到一些常用的XML编辑器和验证工具,如XMLSpy、Visual Studio、XMLStarlet等,...

    xsd生成xml工具

    接下来,工具会根据这些信息生成一个符合模式的XML文档,这个文档可能包含所有可能的数据类型和结构,以便用户了解或测试与XSD兼容的XML数据应如何构造。 这个工具的源代码开放给用户,对于学习XML Schema和XML处理...

    验证XSD和XML文件的小工具

    验证xml文件与xsd是否匹配

    java生成xsd,xml示例

    在Java开发中,XML(可扩展标记语言)和XSD(XML Schema定义)是常见的数据交换格式和技术。XML用于结构化数据的存储和传输,而XSD则为XML文档提供了语义验证的规则。本教程将详细介绍如何在Java环境中生成XML和XSD...

    xml & xsd XML 架构

    XML 架构预计将在未来的 XML 处理中扮演核心角色,尤其是在 Web 服务领域,它将作为构建更高级别抽象的重要基础之一.

    xml、xsd、javabean的互相转换

    作为备忘录,实现xml转换成xsd,然后由xsd转换到javabean,最后在xml和javabean之间互相转换。 说明网址:http://blog.csdn.net/beanjoy/article/details/38272051

    检测xml和xsd的代码及程序

    这样的工具通常会读取XML文档,然后比对XSD文件,检查XML文档中的元素、属性和值是否与XSD中定义的规则相匹配。如果存在不匹配,工具会返回错误或警告信息。 使用这样的代码或程序进行XML和XSD的检测,有以下几点...

    xml2xsd进而实现XML与javaBean互转

    xml to xsd 进而实现XML与javaBean互转,并且附上具体的使用博客 http://blog.csdn.net/sinat_34979884/article/details/78501892

Global site tag (gtag.js) - Google Analytics