﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-再一次也好-随笔分类-Database</title><link>http://www.blogjava.net/xujun7/category/44982.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 12 May 2010 12:04:42 GMT</lastBuildDate><pubDate>Wed, 12 May 2010 12:04:42 GMT</pubDate><ttl>60</ttl><item><title>XML</title><link>http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html</link><dc:creator>eric_xu</dc:creator><author>eric_xu</author><pubDate>Wed, 12 May 2010 12:03:00 GMT</pubDate><guid>http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html</guid><wfw:comment>http://www.blogjava.net/xujun7/comments/320739.html</wfw:comment><comments>http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xujun7/comments/commentRss/320739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xujun7/services/trackbacks/320739.html</trackback:ping><description><![CDATA[&nbsp;
<p>XML<span style="font-family: 宋体">的优势：自描述，格式扩展性强，允许嵌套</span></p>
<p><span style="font-family: 宋体">子元素和属性的区别，属性是隐式的，不出现在文档中。</span></p>
<p>Xmlns<span style="font-family: 宋体">名字空间</span></p>
<p>CDATA<span style="font-family: 宋体">用于对正常文本的处理。</span></p>
<p>XML<span style="font-family: 宋体">模式定义语言：</span>DTD<span style="font-family: 宋体">和</span>XML Schema</p>
<p>XML Schema<span style="font-family: 宋体">事实上也是</span>XML<span style="font-family: 宋体">的一种应用，也就是说</span>XML Schema<span style="font-family: 宋体">的格式与</span>XML<span style="font-family: 宋体">的格式是完全相同的，而作为</span>SGML DTD<span style="font-family: 宋体">的一个子集，</span>XML DTD<span style="font-family: 宋体">具有着与</span>XML<span style="font-family: 宋体">格式完全不同的格式。这种区别会给</span>XML Schema<span style="font-family: 宋体">的使用带来许多好处：</span></p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">由于</span>XML Schema<span style="font-family: 宋体">本身也是一种</span>XML<span style="font-family: 宋体">，所以许多的</span>XML<span style="font-family: 宋体">编辑工具、</span>API <span style="font-family: 宋体">开发包、</span>XML<span style="font-family: 宋体">语法分析器可以直接的应用到</span>XML Schema<span style="font-family: 宋体">，而不需要修改。</span> </p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">作为</span>XML<span style="font-family: 宋体">的一个应用，</span>XML Schema<span style="font-family: 宋体">理所当然的继承了</span>XML<span style="font-family: 宋体">的自描述性和可扩展性，这使得</span>XML Schema <span style="font-family: 宋体">更具有可读性和灵活性。</span> </p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">由于格式完全与</span>XML<span style="font-family: 宋体">一样，</span>XML Schema<span style="font-family: 宋体">除了可以像</span>XML<span style="font-family: 宋体">一样处理外，也可以同它所描述的</span>XML<span style="font-family: 宋体">文档以同样的方式存储在一起，方便管理。</span> </p>
<p style="text-align: left; line-height: 14.25pt; text-indent: -17.85pt; margin-left: 17.85pt; tab-stops: list 36.0pt" class="MsoNormal" align="left">4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>XML Schema<span style="font-family: 宋体">与</span>XML<span style="font-family: 宋体">格式的一致性，使得以</span>XML<span style="font-family: 宋体">为数据交换的应用系统之间，也可以方便的进行模式交换。</span> </p>
<p>XML Schema<span style="font-family: 宋体">则不同，它内置了三十七种数据类型，如</span>long<span style="font-family: 宋体">，</span>int<span style="font-family: 宋体">，</span>short<span style="font-family: 宋体">，</span>double<span style="font-family: 宋体">等常用的数据类型，</span>XML Schema<span style="font-family: 宋体">数据类型的真正灵活性来自于其对用户自定义类型的支持。使用</span>complexType<span style="font-family: 宋体">和</span>sequence<span style="font-family: 宋体">构造复杂类型。</span></p>
<p>DTD<span style="font-family: 宋体">：限制并归类文档中的信息，并不限制基本类型意义上的类型，只限制元素子元素很属性的出现。是有关一个元素中可以出现何种模式的子元素的一系列规则。</span>|<span style="font-family: 宋体">表示或，</span>+<span style="font-family: 宋体">表示一个或多个，</span>*<span style="font-family: 宋体">表示零个或多个，？表示零个或一个。</span></p>
<p>DTD</p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">单个文本元素和属性不能定义，不能定于为整数。</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">只能指定一个无序的集合，很难指定每个标签只出现一次</span></p>
<p>XML Schema<span style="font-family: 宋体">可以用</span>minOccurs<span style="font-family: 宋体">和</span>maxOccurs<span style="font-family: 宋体">指定某个子元素出现的最多和最少次数。</span></p>
<p>XML Schema<span style="font-family: 宋体">较</span>DTD<span style="font-family: 宋体">的优势：</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许把元素中出现的文本限制为专门类型</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许创建用户自定义类型</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许唯一性和外键约束</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">与名字空间结合以允许文档遵从不同模式</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">5.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许使用继承来扩展复杂类型</span></p>
<p style="text-indent: -21pt; margin-left: 21pt" class="MsoListParagraph">6.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">允许使用专门类型来对类型进行限制，最大最小值</span></p>
<p>XML<span style="font-family: 宋体">查询转换工具：</span>XPath<span style="font-family: 宋体">，</span>XQuery<span style="font-family: 宋体">，</span>XSLT</p>
<p>XPath<span style="font-family: 宋体">是基于路径表达式的语言，</span>FLWOR<span style="font-family: 宋体">表达式</span></p>
<p>XQuery<span style="font-family: 宋体">仿照</span>SQL</p>
<p>XSLT(XSL Transformation)<span style="font-family: 宋体">是由</span>XSL(XML Stylesheet Language)<span style="font-family: 宋体">扩展而来的</span></p>
<p>#PCDATA<span style="font-family: 宋体">表示文本数据，</span>empty<span style="font-family: 宋体">表示没有内容，</span>any<span style="font-family: 宋体">表示任意。</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;?xml version="1.0"?&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!DOCTYPE note [</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT note (to,from,heading,body)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT to (#PCDATA)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT from (#PCDATA)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT heading (#PCDATA)&gt;</span></p>
<p style="text-align: left; line-height: 18pt; word-break: break-all" class="MsoNormal" align="left"><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">&lt;!ELEMENT body (#PCDATA)&gt;</span></p>
<p><span style="font-family: 宋体; letter-spacing: 0.4pt; color: black">　　</span><span style="font-family: 'Arial', 'sans-serif'; letter-spacing: 0.4pt; color: black">]&gt;</span></p>
<img src ="http://www.blogjava.net/xujun7/aggbug/320739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xujun7/" target="_blank">eric_xu</a> 2010-05-12 20:03 <a href="http://www.blogjava.net/xujun7/archive/2010/05/12/320739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>