xml standalone

standalone  用来表示该文件是否呼叫其它外部的文件。若值是 ”yes” 表示没有呼叫外部文件,若值是 ”no” 则表示有呼叫外部文件。默认值是 “yes”。 

这里所指的外部文件其实就是查检XML是不是有效的约束文件,或是DTD或是Schema,那这两者又有什么区别呢? 

   尽管XML1.0提供了一种机制,即文档类型定义(DTD)来规范XML的格式规则。但是它天生存在一些缺点,比如,它采用了非XML的语法规则、不支持更多的数据类型、扩展性差等,为了克服这些缺点,XML Schema 出现了。W3C推荐在XML中使用XML Schema来代替DTD。 
XML Schema(模式) 跟DTD一样,也用于定义 XML 文档的约束。但它与DTD明显不同的是,XML Schema遵循XML语法规则,更好地支持数据类型以及命名空间。W3C称:XML Schema is an XML based alternative to DTD。模式在单独的文件中定义,通常扩展名为 .xsd。每个模式定义都有一个根元素 schema,该元素属于名称空间http://www.w3.org/2001/XMLSchema。schema 元素可以包含可选的属性。比如: 
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema 
    elementFormDefault="qualified" attributeFormDefault="unqualified"> 
这表示模式中使用的元素来自http://www.w3.org/2001/XMLSchema名称空间。 
XML 文件使用 schema 名称空间中的 schemaLocation 属性链接到对应的模式。使用 schemaLocation 属性必须定义 schema 名称空间。所有这些定义都出现在 XML 文档的根元素中。语法如下: 
<root_element  schema_namespace_definition  schema_location_definition> 
下面是一个例子: 
<Books  xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" 
xs:schemaLocation="http://www.example.com Books.xsd"> 
先来看看一个XML文件示例(message.xml),分别用DTD和XML Schema 描述这个文件,看看它们之间的区别:

1、使用DTD: 
引用
<?xml version="1.0" standalone="yes"?> 
<!DOCTYPE message[ 
  <!ELEMENT message (to,from,body)> 
  <!ELEMENT to      (#PCDATA)> 
  <!ELEMENT from    (#PCDATA)> 
  <!ELEMENT body    (#PCDATA)> 
]> 
<message> 
  <to>rose</to> 
  <from>alex</from> 
  <body>Hi,My Girl!</body> 
</message>


2、使用XML Schema : 

message.xml: 
Java代码   收藏代码
  1. <?xml version="1.0" standalone="no"? >  
  2. <message xmlns=http://www.example.com   
  3.   xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance   
  4.   xsi:schemaLocation="http://www.example.com message.xsd">  
  5.    <to>Rose</to>  
  6.    <from>Alex</from>  
  7.    <body>Hi,My Girl!</body>  
  8. </message>  

message.xsd: 
Java代码   收藏代码
  1. <?xml version="1.0"?>  
  2. <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema   
  3. targetNamespace=http://www.example.com   
  4. xmlns="http://www.example.com" elementFormDefault="qualified">  
  5.  <xs:element name="message">  
  6.   <xs:complexType>  
  7.     <xs:sequence>  
  8.     <xs:element name="to" type="xs:string"/>  
  9.     <xs:element name="from" type="xs:string"/>  
  10.     <xs:element name="body" type="xs:string"/>  
  11.     </xs:sequence>  
  12.   </xs:complexType>  
  13.  </xs:element>  
  14. </xs:schema>  


来源:http://lyjgs.168.blog.163.com/blog/static/7650077820084763435588/
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值