设为首页  加入收藏  联系我们 繁體中文  

黑客软件:

  漏洞扫描 | 木马间谍 | 加密解密 | 远程控制 | 破坏攻击 | 杀毒软件 | 防火墙类 | OICQ专区 | 黑客必备 | 常用工具 | 网吧攻击
文章中心:   最新资讯 | 黑客技术 | 电脑基础 | 菜鸟文摘 | 网络安全 | 网络技巧 | QQ技巧 | OQ空间代码 | 免费资源 | 编程世界 | 建站技术
素材源码:   论坛相关 | ASP源码 | CGI 源码 | NET 源码 | PHP 源码 | 酷站素材 | 字体素材 | 图片素材 | 友情发布 | 网页模版 | 建站软件
教程动画:   黑客教程 | 黑客编程 | 网站入侵 | 菜鸟教程 | 入侵教程 | 破解教程 | 电子书籍 | 网页制作 | 高级会员 | 综合教程 | 本站原创


   

  您当前的位置:中华隐士黑客联盟 -> 编程世界 -> XML编程 -> 文章内容 [站内搜索]  

 
XML简明教程第6课 使用XML Schema
作者:无从考证  来源:中国站长学院  发布时间:2006-11-13 20:17:59  发布人:www.hack86.com
什么是XML Schema? 
XML Schema是一个基于XML的语法或schema规范,用来定义XML文档的标记方式。XML Sc 
hema是一个由Microsoft建议的schema规范,它与文档类型定义(DTD)相比具有很大的 
优势,而DTD是最初用来定义XML模型的schema规范。DTD存在很多缺点,包括使用非XML 
语法,不支持数据类型定义,不具有扩展性等。例如,DTD不允许把元素内容定义为另外 
一个元素,或字符串。想了解更多有关DTD的内容,可以参考W3C XML建议书。 XML Sch 
ema从几个方面改善了DTD,包括使用XML语法,支持数据类型定义和名域。例如,XML S 
chema允许你把一个元素说明为一个integer, float,Boolean, URL等类型。 
在Internet Explorer 5中的XML解析器可以解析使用DTD或XML Schema的XML文档。 
如何建立XML Schema? 
请在下面的XML文档中找一找每个节点的schema声明。 
<class xmlns="x-schema:classSchema.xml"> 
      <student studentID="13429"> 
         <name>Jane Smith</name> 
         <GPA>3.8</GPA> 
     </student> 
</class> 
你会注意到在上面文档中默认的名域是“x-schema:classSchema.xml”。这告诉解析器 
根据URL(“classSchema.xml”)上的schema(x-schema)来解析整个文档。 
下面是上面那个文档的完整的schema。注意schema的根元素中的名域声明。第一个(xml 
ns=”urn:schemas-microsoft-com:xml-data”)表明这个XML文档是一个XML Schema。第 
二个(xmlns:dt=”urn:schemas-microsoft-com:datatypes”)允许schema处理者在Elem 
entType和AttributeType声明中的type属性前加dt前缀来说明元素的类型和内容的特征 
。 
<Schema  xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mi 
crosoft-com:datatypes"> 
     <AttributeType name='studentID' dt:type='string' required='yes'/> 
     <ElementType name='name' content='textOnly'> 
     <ElementType name='GPA' content='textOnly' dt:type='float'/> 
     <ElementType name='student' content='mixed'> 
         <attribute type='studentID'/> 
         <element type='name'/> 
         <element type='GPA'/> 
     </ElementType> 
     <ElementType name='class' content='eltOnly'> 
         <element type='student'/> 
     </ElementType> 
</Schema> 
用来定义元素和属性的声明元素如下所示: 
元    素 
 说    明 
ElementType 把类型和条件赋给一个元素,可以包含子元素 
AttributeType 把类型和条件赋给一个属性 
attribute 声明以前定义过的属性类型可以出现在名为ElementType的元素的作用域中 
element 声明以前定义过的元素类型可以出现在名为ElementType的元素的作用域中 
  
Schema的内容以最深层的元素的“AttributeType”和“ElementType”声明开头。 
<AttributeType name='studentID' dt:type='string' required='yes'/> 
<ElementType name='name' content='textOnly'> 
<ElementType name='GPA' content='textOnly' dt:type='float'/> 
ElementType声明后接着就是它的属性和子元素,如果一个元素有属性或子元素,必须把 
这种方法包含在它的ElementType声明中,或者是必须在它们自己的 ElementType 或 A 
ttributeType声明中进行前导声明。 
<ElementType name='student' content='mixed'> 
     <attribute type='studentID'/> 
     <element type='name'/> 
     <element type='GPA'/> 
</ElementType> 
不同于DTDs,XML Schema允许有一个开放的内容模式,你可以进行定义数据类型、使用 
默认值等等操作而不必限定内容。 
在下面的schema中,<GPA> 元素的类型被定义并有一个默认值,但在 <student> 元素中 
没有其他节点被声明。 
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mic 
rosoft-com:datatypes"> 
      <AttributeType name="scale" default="4.0"/> 
      <ElementType name="GPA" content="textOnly" dt:type="float"> 
         <attribute type="scale"/> 
      </ElementType> 
      <AttributeType name="studentID"/> 
      <ElementType name="student" content="eltOnly" model="open" order="many 
"> 
         <attribute type="studentID"/> 
         <element type="GPA"/> 
      </ElementType> 
</Schema> 
上面的schema允许你只验证你所关心的区域,这使你对文档的验证级别有更多的控制, 
并允许你使用schema提供的一些特性而不必严格确认。 
尝试一下! 
试着处理一下下面的XML文档的schema。 
<order> 
  <customer> 
    <name>Fidelma McGinn</name> 
    <phone_number>425-655-3393</phone_number> 
  </customer> 
  <item> 
    <number>5523918</number> 
    <description>shovel</description> 
    <price>39.99<price> 
  </item> 
  <date_of_purchase>1998-10-23</date_of_purchase> 
  <date_of_delivery>1998-11-03</date_of_delivery> 
</order> 
如果你处理完schema,在XML Validator中运行 . 
下载MSDN Online的区域中提供了一套 XML sample files, 包括一个有相关schema的XM 
L文档。下载这些示例程序可以与XML文档和schema一起运行。如果你想要根据一个sche 
ma来测试XML的有效性,可以从XML Validator 处下载文档或查看Mime Type Viewer中的 
XML文件。 
一些说明: 
ElementType和 AttributeType 声明必须放在attribute和element内容声明之前。例如 
,在上面的schema中,<GPA>元素的ElementType声明必须放在<student>元素的Element 

Type声明之前。  
order属性的默认值是建立在content属性的值上的。当content值为“eltOnly”时,or 
der默认值是seq。当content值为“mixed”时,order默认值是“many”。see 如果想了 
解有关这些缺省值的信息,可以查看 XML Schema Reference。


[] [返回上一页] [打 印] [收 藏]
  [相关文章评论]    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
 

  微软XML服务曝危急缺..
黑客技巧之Foxmail口..
Foxmail账户入侵原理..
根据查询结果,生成X..
使用XML技术实现OWC..
[图文] Flash MX 200..
vbs类生成xml文件
XML技术上传文件
用C#与XML创建动态..
XML简明教程第1课: ..


 
中华隐士黑客联盟
本站超级酷的Flash (不看会后悔的..
免费在线看的电影网站(一)
最新QQ空间4.0全屏版效果图!!
免费获得Q币的最新方法
黑客快速入门(强烈推荐)
揭秘远程破解盗窃QQ密码的各种方..
不用木马,轻松万能偷盗QQ号码
免费二级域名申请
18岁少女欲6000元卖处女身 救患血..
 
防止QQ和QQ币游戏币被盗的办法 12-03
养在深闺人未识:FU_Rootkit 12-03
黑客学堂:什么是社会工程学? 12-03
VB程序实现XP效果的界面 12-03
fport.vbs for XP/2003 12-03
保卫自己网站的胜利果实 12-03
SQL注入建立虚拟目录,免得找Web.. 12-03
搜索型注入的文章 12-03
如何用虚拟机安装Windows Vista系.. 12-03
通杀腾讯QCC所有商品免费拿! 12-03
 
关于本站 网站帮助 广告合作 下载声明 友情连接 网站地图 访客留言 论坛登录
〖中华隐士黑客联盟〗,Copyright © 2006-2010 WwW.Hack86.Com 闽ICP备:06023304号
站长:小质 QQ:771760,软件发布MAIL:Hack086@21cn.com