﻿<?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-Boris的小家-随笔分类-java&amp;xml</title><link>http://www.blogjava.net/lqsun/category/673.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 11:53:17 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 11:53:17 GMT</pubDate><ttl>60</ttl><item><title>java&amp;xml第四天，sax</title><link>http://www.blogjava.net/lqsun/archive/2005/03/14/2064.html</link><dc:creator>Boris-Java</dc:creator><author>Boris-Java</author><pubDate>Mon, 14 Mar 2005 05:26:00 GMT</pubDate><guid>http://www.blogjava.net/lqsun/archive/2005/03/14/2064.html</guid><wfw:comment>http://www.blogjava.net/lqsun/comments/2064.html</wfw:comment><comments>http://www.blogjava.net/lqsun/archive/2005/03/14/2064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqsun/comments/commentRss/2064.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqsun/services/trackbacks/2064.html</trackback:ping><description><![CDATA[SAX（Simple API for XML用于XML的简单API）<BR>由于提前学习了cocoon，时间上又经过了一个周末，想要写得激情没有剩下多少，这里简单的回顾一下SAX的一些接口定义和用处吧！-_-#<BR>1、准备工作<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sax相关的类都封装在org.xml.sax中，其中接口org.xml.sax.XMLReader是SAX2的核心类，你的xml解析器应该提供这个接口的实现类。比如"org.apache.xerces.parsers.SAXParser"这个类。<BR>2、sax的处理流程<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sax基本的处理方法是在解析之前注册各种处理类（Handler），在解析的时候callback这些处理器，内容处理器就是其中最主要的一个。举例来说明的话，如下的xml文档：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version="1.0"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">samples</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">server</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">UNIX</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">server</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">monitor</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">color</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">monitor</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">samples</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV>他将会在解析的时候被转化成如下的一串事件流：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Start&nbsp;document<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Start&nbsp;element&nbsp;(samples)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Characters&nbsp;(white&nbsp;space)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Start&nbsp;element&nbsp;(server)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Characters&nbsp;(UNIX)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;element&nbsp;(server)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Characters&nbsp;(white&nbsp;space)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Start&nbsp;element&nbsp;(monitor)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Characters&nbsp;(color)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;element&nbsp;(monitor)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Characters&nbsp;(white&nbsp;space)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;element&nbsp;(samples)<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV>开发者要做的就是捕获这些事件，然后做自己要做的事情。<BR>3、内容处理类<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.xml.sax.ContentHandler<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">package&nbsp;org.xml.sax;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">interface</SPAN><SPAN style="COLOR: #000000">&nbsp;ContentHandler<BR><IMG id=Codehighlighter1_53_945_Open_Image onclick="this.style.display='none'; Codehighlighter1_53_945_Open_Text.style.display='none'; Codehighlighter1_53_945_Closed_Image.style.display='inline'; Codehighlighter1_53_945_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align=top><IMG id=Codehighlighter1_53_945_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_945_Closed_Text.style.display='none'; Codehighlighter1_53_945_Open_Image.style.display='inline'; Codehighlighter1_53_945_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align=top></SPAN><SPAN id=Codehighlighter1_53_945_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><IMG src="http://www.blogjava.net/images/dot.gif"></SPAN><SPAN id=Codehighlighter1_53_945_Open_Text><SPAN style="COLOR: #000000">{<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;setDocumentLocator&nbsp;(Locator&nbsp;locator);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;startDocument&nbsp;()throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;endDocument()throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;startPrefixMapping&nbsp;(String&nbsp;prefix,&nbsp;String&nbsp;uri)&nbsp;throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;endPrefixMapping&nbsp;(String&nbsp;prefix)throws&nbsp;SAXException;<BR></SPAN><SPAN style="COLOR: #0000ff"><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT>public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;startElement&nbsp;(String&nbsp;namespaceURI,&nbsp;String&nbsp;localName,String&nbsp;qName,&nbsp;Attributes&nbsp;atts)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;endElement&nbsp;(String&nbsp;namespaceURI,&nbsp;String&nbsp;localName,String&nbsp;qName)throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;characters&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">&nbsp;ch[],&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;start,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;length)throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;ignorableWhitespace&nbsp;(</SPAN><SPAN style="COLOR: #0000ff">char</SPAN><SPAN style="COLOR: #000000">&nbsp;ch[],&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;start,&nbsp;</SPAN><SPAN style="COLOR: #0000ff">int</SPAN><SPAN style="COLOR: #000000">&nbsp;length)throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;processingInstruction&nbsp;(String&nbsp;target,&nbsp;String&nbsp;data)throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">public</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">void</SPAN><SPAN style="COLOR: #000000">&nbsp;skippedEntity&nbsp;(String&nbsp;name)throws&nbsp;SAXException;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</SPAN></SPAN></DIV></DIV>有一点要说明的就是ignorableWhitespace&nbsp;这个方法是在遇到<STRONG>可以忽略的空白</STRONG>的时候回调的，但是如果xml文档没有定义DTD或者是Schema，那么这个方法将不会被调用，因为如果没有文档结构的定义，解析器又如何判断哪些空白是<STRONG>可以忽略</STRONG>的呢。<BR>4、错误处理类<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErrorHandler这个类提供两个方法，warning和error，用于在处理解析过程发生的错误和警告，包括xml格式的错误和文档结构检查的错误。<BR>5、过滤器和写入器<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.xml.sax.XMLFilter这个接口扩展了XMLReader接口，添加了两个新方法：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public void setParent(XMLReader reader);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public XMLReader getParent();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;他的意图比较明显，将一个已有的XMLReader作为上级解析器，他将得以在这个XMLReader执行捕获sax事件之前捕获他们，并作一些操作，最后在链向XMLReader的对象，这里的概念很像cocoon的内部实现。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这里还要提到的一个类是：org.xml.sax.helpers.XMLFilterImpl这个类实现了XMLFilter接口，不仅如此，他还提供了ContentHandler，ErrorHandler等处理器的处理方法通道。也就是说，如果继承XMLFilterImpl并覆盖startElement方法，那么你写得代码将在实际的Reader执行startElement方法被执行之前被执行。下面是一个注册Filter的例子：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">XMLReader&nbsp;reader&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;XMLReaderFactory.createXMLreader();<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>MyFilter&nbsp;filter&nbsp;</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">&nbsp;</SPAN><SPAN style="COLOR: #0000ff">new</SPAN><SPAN style="COLOR: #000000">&nbsp;MyFilter(reader<IMG src="http://www.blogjava.net/images/dot.gif">.);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>filter.setContenHandler(<IMG src="http://www.blogjava.net/images/dot.gif">);<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><IMG src="http://www.blogjava.net/images/dot.gif"><IMG src="http://www.blogjava.net/images/dot.gif"><IMG src="http://www.blogjava.net/images/dot.gif"><IMG src="http://www.blogjava.net/images/dot.gif"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV>注意在注册内容处理类等类的时候，应该写filter....<BR>另外，你当然也可以再写一个filter2,而把filter作为parent传入，这样就构成了一个事件处理链。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.xml.sax.XMLWriter是一个实际的过滤器，他也是通过上面说到的方式：扩展XMLFilterImpl来实现的。具体的类除了XMLWriter外还有DataWriter，他扩展XMLWriter。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要注意的是这两个类一般不用来做实际的写入流操作，但是他们可以用于很好的表现sax处理链的中间结果，也就是快照snapshot<BR>6、sax的属性和特征<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;属性和特征在XMLReader接口里面体现为：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getFeature(String),setFeature(String,boolean)方法和getProperty(String),setProperty(String,Object)方法，用来控制解析过程的一些选项，比如是否进行DTD校验。比如：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.setFeature("<A href="http://xml.org/sax/features/validation">http://xml.org/sax/features/validation</A>", true);这样会在解析的时候校验DTD定义<BR>reader.setFeature("<A href="http://apache.org/xml/features/validation/schema">http://apache.org/xml/features/validation/schema</A>", true);这样会启动schema校验。<img src ="http://www.blogjava.net/lqsun/aggbug/2064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqsun/" target="_blank">Boris-Java</a> 2005-03-14 13:26 <a href="http://www.blogjava.net/lqsun/archive/2005/03/14/2064.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java&amp;XML学习第三天，cocoon2</title><link>http://www.blogjava.net/lqsun/archive/2005/03/10/1911.html</link><dc:creator>Boris-Java</dc:creator><author>Boris-Java</author><pubDate>Thu, 10 Mar 2005 07:38:00 GMT</pubDate><guid>http://www.blogjava.net/lqsun/archive/2005/03/10/1911.html</guid><wfw:comment>http://www.blogjava.net/lqsun/comments/1911.html</wfw:comment><comments>http://www.blogjava.net/lqsun/archive/2005/03/10/1911.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/lqsun/comments/commentRss/1911.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqsun/services/trackbacks/1911.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;由于对于cocoon 2的内容特别的感兴趣，所以跳过了对sax的学习就直接开始了cocoon 2的学习，事实证明这样是不对的，如果你只是想对cocoon 2作一个简单的了解，可以不学sax，但是如果想要深入了解cocoon 2的话，还是应该先学习sax。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首...&nbsp;&nbsp;<a href='http://www.blogjava.net/lqsun/archive/2005/03/10/1911.html'>阅读全文</a><img src ="http://www.blogjava.net/lqsun/aggbug/1911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqsun/" target="_blank">Boris-Java</a> 2005-03-10 15:38 <a href="http://www.blogjava.net/lqsun/archive/2005/03/10/1911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习java&amp;XML第二天，命名空间</title><link>http://www.blogjava.net/lqsun/archive/2005/03/08/1840.html</link><dc:creator>Boris-Java</dc:creator><author>Boris-Java</author><pubDate>Tue, 08 Mar 2005 09:32:00 GMT</pubDate><guid>http://www.blogjava.net/lqsun/archive/2005/03/08/1840.html</guid><wfw:comment>http://www.blogjava.net/lqsun/comments/1840.html</wfw:comment><comments>http://www.blogjava.net/lqsun/archive/2005/03/08/1840.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqsun/comments/commentRss/1840.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqsun/services/trackbacks/1840.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于XML的基础知识一直都是读的<A href="http://www1.xml.net.cn/">http://www1.xml.net.cn/</A>那本初学进阶，讲的非常容易懂，就是关于命名空间这一块没有给出一个比较好的例子，所以自己整理了一下。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;初学进阶里面说命名空间是用于在一个XML里面引入多个DTD的，的确，概念上是这样子的，不过网上的资料显示XML的命名空间并不支持DTD格式的格式定义，也就是说，想实现一个XML当中有多个文档格式的话，就必须要使用Schema。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;先了解一下我们要实现的例子：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>client.xml<BR><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人列表</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">张三</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">ID</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">001</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">ID</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">公司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">A公司</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">公司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">EMAIL</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">zhang@aaa.com</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">EMAIL</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">(010)62345678</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">地址</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">街道</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">五街1234号</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">街道</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">城市</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">北京市</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">城市</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">省份</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">北京</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">省份</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">地址</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">直接上司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">王五</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">秘书电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">(010)62345678</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">秘书电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">手机</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">13601234567</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">手机</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">直接上司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人列表</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV></DIV><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以上是我们想要最终表达的数据格式，其中，联系人的直接上司属性有点麻烦，因为整个直接上司表达的是一个“企业经理”的“对象”，该“对象”可以以另外的XML形式体现，如下：<BR><BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="GB2312"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">企业经理</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">王五</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">秘书电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">(010)62345678</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">秘书电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">手机</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">13601234567</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">手机</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">企业经理</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;看以上的两个文档，实际上就是我们想表达的数据，两个抽象的实体“联系人”和“企业经理”之间存在着一对一的关系。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;但是我们现在有个麻烦，在联系人列表这个XML当中，有两个“姓名”元素和两个“电话”元素，他们表达的是不同的意思，其文档格式定义也不同。他们分别对应着不同的DTD或者是Schema。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为了解决这一问题，就有了命名空间的概念，首先，对于我们要最终作用于其上的client.xml，他必须首先区别联系人和企业经理，做法就是在前面加前缀，比如联系人的名字改为“联系人：名字”而企业经理的名字则改为“企业经理：名字”<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其次，两个不同的文档定义文件必须首先定义好命名空间，在作用于XML文件的时候，<STRONG>使命名空间和XML声明中的命名空间一致</STRONG>。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面分别给出例子代码：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.xml：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="GB2312"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">联系人列表&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>xmlns:联系人</SPAN><SPAN style="COLOR: #0000ff">="id"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>xmlns:xsi</SPAN><SPAN style="COLOR: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>xsi:schemaLocation</SPAN><SPAN style="COLOR: #0000ff">="id&nbsp;client.xsd&nbsp;id2&nbsp;manager.xsd"</SPAN><SPAN style="COLOR: #ff0000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>xmlns:企业经理</SPAN><SPAN style="COLOR: #0000ff">="id2"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">联系人</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">张三</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:ID</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">001</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:ID</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">公司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">A公司</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:公司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:EMAIL</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">zhang@联系人.com</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:EMAIL</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">(010)62345678</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">地址</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">街道</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">五街1234号</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:街道</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">城市</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">北京市</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:城市</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">省份</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">北京</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:省份</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:地址</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">直接上司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">企业经理:</SPAN><SPAN style="COLOR: #ff0000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">王五</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">企业经理:姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">企业经理:</SPAN><SPAN style="COLOR: #ff0000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">企业经理:</SPAN><SPAN style="COLOR: #ff0000">秘书电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">(010)62345678</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">企业经理:秘书电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">企业经理:</SPAN><SPAN style="COLOR: #ff0000">手机</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">13601234567</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">企业经理:手机</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">企业经理:电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:直接上司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:联系人</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">联系人</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">李四</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:姓名</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:ID</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">002</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:ID</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">公司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">B公司</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:公司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:EMAIL</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">li@bbb.org</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:EMAIL</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">(021)87654321</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:电话</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">地址</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">街道</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">南京路9876号</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:街道</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">城市</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">上海市</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:城市</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">省份</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">上海</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:省份</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:地址</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人:</SPAN><SPAN style="COLOR: #ff0000">直接上司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">aa</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:直接上司</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:联系人</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">联系人:联系人列表</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.xsd：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="GB2312"&nbsp;standalone="yes"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">W3C&nbsp;Schema&nbsp;generated&nbsp;by&nbsp;XMLSpy&nbsp;v2005&nbsp;sp1&nbsp;U&nbsp;(http://www.xmlspy.com)</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:schema&nbsp;</SPAN><SPAN style="COLOR: #ff0000">xmlns:xs</SPAN><SPAN style="COLOR: #0000ff">="http://www.w3.org/2001/XMLSchema"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;xmlns</SPAN><SPAN style="COLOR: #0000ff">="id"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;targetNamespace</SPAN><SPAN style="COLOR: #0000ff">="id"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;elementFormDefault</SPAN><SPAN style="COLOR: #0000ff">="qualified"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="EMAIL"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="ID"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="公司"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="地址"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="街道"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="城市"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="省份"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:element</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="城市"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="姓名"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="电话"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="省份"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="联系人"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="姓名"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="ID"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="公司"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="EMAIL"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="电话"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="地址"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="直接上司"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:element</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="联系人列表"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="联系人"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;maxOccurs</SPAN><SPAN style="COLOR: #0000ff">="unbounded"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:element</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="街道"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="直接上司"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:anyType"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:schema</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV></DIV><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;manager.xsd：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="GB2312"&nbsp;standalone="yes"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008000">&lt;!--</SPAN><SPAN style="COLOR: #008000">W3C&nbsp;Schema&nbsp;generated&nbsp;by&nbsp;XMLSpy&nbsp;v2005&nbsp;sp1&nbsp;U&nbsp;(http://www.xmlspy.com)</SPAN><SPAN style="COLOR: #008000">--&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:schema&nbsp;</SPAN><SPAN style="COLOR: #ff0000">xmlns:xs</SPAN><SPAN style="COLOR: #0000ff">="http://www.w3.org/2001/XMLSchema"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;xmlns</SPAN><SPAN style="COLOR: #0000ff">="id2"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;targetNamespace</SPAN><SPAN style="COLOR: #0000ff">="id2"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;elementFormDefault</SPAN><SPAN style="COLOR: #0000ff">="qualified"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="企业经理"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="姓名"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="电话"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:element</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="姓名"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="手机"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="电话"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="秘书电话"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">ref</SPAN><SPAN style="COLOR: #0000ff">="手机"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:sequence</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:complexType</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:element</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">xs:element&nbsp;</SPAN><SPAN style="COLOR: #ff0000">name</SPAN><SPAN style="COLOR: #0000ff">="秘书电话"</SPAN><SPAN style="COLOR: #ff0000">&nbsp;type</SPAN><SPAN style="COLOR: #0000ff">="xs:string"</SPAN><SPAN style="COLOR: #0000ff">/&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;/</SPAN><SPAN style="COLOR: #800000">xs:schema</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN></DIV></DIV><BR>说明：我在这里用id和id2来表示命名空间是应为很多人会认为那个命名空间的网址会在解析XML的时候被访问，我一开始也这样认为，所以改成id来做个测试。<img src ="http://www.blogjava.net/lqsun/aggbug/1840.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqsun/" target="_blank">Boris-Java</a> 2005-03-08 17:32 <a href="http://www.blogjava.net/lqsun/archive/2005/03/08/1840.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习java&amp;XML第二天熟悉一下DTD</title><link>http://www.blogjava.net/lqsun/archive/2005/03/08/1826.html</link><dc:creator>Boris-Java</dc:creator><author>Boris-Java</author><pubDate>Tue, 08 Mar 2005 06:23:00 GMT</pubDate><guid>http://www.blogjava.net/lqsun/archive/2005/03/08/1826.html</guid><wfw:comment>http://www.blogjava.net/lqsun/comments/1826.html</wfw:comment><comments>http://www.blogjava.net/lqsun/archive/2005/03/08/1826.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqsun/comments/commentRss/1826.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqsun/services/trackbacks/1826.html</trackback:ping><description><![CDATA[DTD（Document Type Definition）文件类型描述<BR><BR>第一点要注意的：<STRONG>DTD中的关键字必须全部大写！<BR><BR>一、DTD的位置<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</STRONG>DTD可以放在xml文档里面：<BR><BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">出自《XML入门》<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version&nbsp;=&nbsp;"1.0"&nbsp;encoding="GB2312"&nbsp;standalone&nbsp;=&nbsp;"yes"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">DOCTYPE&nbsp;联系人列表[<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!ELEMENT&nbsp;联系人列表&nbsp;(联系人)*</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;联系人&nbsp;(姓名,ID,公司,EMAIL,电话,地址)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;地址&nbsp;(街道,城市,省份)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;姓名&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;ID&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;公司&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;EMAIL&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;电话&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;街道&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;城市&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">ELEMENT&nbsp;省份&nbsp;(#PCDATA)</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;]&gt;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人列表</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR>...................................</SPAN></DIV></DIV><BR>放在里面的时候，应该注意“standalone = "yes"”<BR>也可以放在外面，放在外面有两种形式，一种是引用本地文件，如：<BR><BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;?</SPAN><SPAN style="COLOR: #ff00ff">xml&nbsp;version&nbsp;=&nbsp;"1.0"&nbsp;encoding="GB2312"&nbsp;standalone&nbsp;=&nbsp;"no"</SPAN><SPAN style="COLOR: #0000ff">?&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">DOCTYPE&nbsp;联系人列表&nbsp;SYSTEM&nbsp;"fclml.dtd"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000"><BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #0000ff">&lt;</SPAN><SPAN style="COLOR: #800000">联系人列表</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN><SPAN style="COLOR: #000000">&nbsp;<BR><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top>..................</SPAN></DIV></DIV><BR>引用的格式是：&lt;!DOCTYPE 根元素名 SYSTEM "外部DTD文件的URL"&gt;<BR>另外一种是引用公共的文档定义，如：<BR>
<DIV style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid">
<DIV><IMG src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #0000ff">&lt;!</SPAN><SPAN style="COLOR: #ff00ff">DOCTYPE&nbsp;struts-config&nbsp;PUBLIC&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;1.1//EN"&nbsp;"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"</SPAN><SPAN style="COLOR: #0000ff">&gt;</SPAN></DIV></DIV>格式为：&lt;!DOCTYPE 根元素 PUBLIC "DTD名称" "外部DTD的URL"&gt;<BR>其中DTD名称解释为：<BR>这个DTD标识的命名规则和XML文件的命名规则稍有不同。具体地说，DTD名称只能包含字母、数字、空格和下面的符号：<A href="mailto:_%$#@()+:=/"><FONT color=#000000>_%$#@()+:=/</FONT></A>!*;?。同时，DTD名称还必须符合一些标准的规定。例如，ISO标准的DTD以“ISO”三个字母开头；被改进的非ISO标准的DTD以加号“+”开头；未被改进的非ISO标准的DTD以减号“-”开头。<BR>所以说struts的配置文件就是“未被改进的非ISO标准的DTD文档”<BR><BR><STRONG>二、DTD的内容<BR></STRONG>DTD文档的内容总结下来有几个比较重要也比较常用的：参数实体定义、元素定义和属性定义<BR><STRONG>1、参数实体定义<BR></STRONG>&nbsp;&nbsp;&nbsp;实体实际上在XML当中充当宏定义或者别名之类的意思，也可以理解成public static String......<BR>&nbsp;&nbsp;&nbsp;参数实体是专门用在DTD当中的，你可以在下面两项元素定义和属性定义中引用参数实体。<BR>&nbsp;&nbsp;&nbsp;其定义方式如下：<BR>&nbsp;&nbsp;&nbsp;&lt;!ENTITY % 实体名 "实体内容"&gt; 注意，在XML中的实体定义是没有%的<BR>&nbsp;&nbsp;&nbsp;或者是：<BR>&nbsp;&nbsp;&nbsp;&lt;!ENTITY % 实体名 SYSTEM "外部文件名"&gt;<BR>&nbsp;&nbsp;&nbsp;引用方式：<BR>&nbsp;&nbsp;&nbsp;%实体名<BR>&nbsp;&nbsp;&nbsp;&nbsp;例子：<BR>&nbsp;&nbsp;&nbsp;&lt;!ENTITY % Boolean "(true|false|yes|no)"&gt;表示定义了一个Boolean 的参数实体，值是"(true|false|yes|no)"<BR>&nbsp;&nbsp;&nbsp;在struts的配置文件的DTD中有如下描述：<BR>&nbsp;&nbsp;&nbsp;&lt;!ATTLIST form-bean&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dynamic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %Boolean;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #IMPLIED&gt;<BR>&nbsp;&nbsp;&nbsp;也就定义了form-bean这个元素的dynamic属性可以取得值是true、false、yes、no其中之一。<BR><BR><STRONG>2、元素定义<BR></STRONG>&nbsp;&nbsp;&nbsp;用来定义元素的格式以及元素的子孙等。<BR>&nbsp;&nbsp;&nbsp;定义形式：&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&lt;!ELEMENT 元素名 元素内容描述&gt;<BR>&nbsp;&nbsp;&nbsp;元素定义这里由于篇幅有限，仅列几个例子<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、&lt;!ELEMENT 联系人列表 <STRONG><FONT color=#ff0000>ANY</FONT></STRONG>&gt;表示联系人列表这个元素的格式及其子孙都不受限制。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、&lt;!ELEMENT 姓名(#PCDATA)&gt;表示姓名这个元素只能包含文本数据<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、&lt;!ELEMENT 联系人(姓名 EMAIL)&gt;表示联系人这个元素只能包含姓名和EMAIL两种子孙，顺序不限，并且姓名只能由一个，EMAIL也只能由一个。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4、&lt;!ELEMENT 联系人(姓名,EMAIL)&gt;表示联系人这个元素只能包含姓名和EMAIL两种子孙，有顺序的限制，并且姓名只能由一个，EMAIL也只能由一个。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5、&lt;!ELEMENT 联系人(姓名，EMAIL<FONT color=#ff0000><STRONG>+</STRONG></FONT>)&gt;表示联系人必须有且仅有一个姓名子孙，有一个到多个EMAIL子孙，其中，如果<FONT color=#ff0000><STRONG>+</STRONG><FONT color=#000000>换作</FONT><STRONG>*</STRONG></FONT><FONT color=#000000>，则表示零个或者多个。</FONT><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6、&lt;!ELEMENT 联系人(姓名，EMAIL)+&gt;表示联系人有一组到多组子孙，每组中有且仅有一对姓名和EMAIL<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7、&lt;!ELEMENT 联系人(姓名，(电话<FONT color=#ff0000><STRONG>|</STRONG></FONT>EMAIL))&gt;表示联系人有一组到多组子孙，每组中第一个元素一定是姓名，第二个元素要么是电话，要么是EMAIL，两者选一个。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8、&lt;!ELEMENT&nbsp;联系人 <STRONG><FONT color=#ff0000>EMPTY</FONT></STRONG>&gt;联系人这个元素不包含任何子孙，也不包含文本。<BR><BR><STRONG>3、属性定义<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格式：</STRONG>&lt;!ATTLIST 元素名 （属性名 属性类型 缺省值）*&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>例子：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</STRONG>1、&lt;!ATTLIST 页面作者 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 姓名 #CDATA #IMPLIED <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 年龄 #CDATA #IMPLIED <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 联系信息 #CDATA #REQUIRED <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网站职务 #CDATA #FIXED "页面作者" <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 个人爱好 #CDATA "上网"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中，定义了页面作者这个元素的属性可以有“姓名”，“年龄”，“联系信息”，“网站职务”和“个人爱好”<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;并且，姓名和年龄是纯文本，可以没有，联系信息必须有，网站职务一定是“页面作者”，个人爱好如果不填，则默认是上网。<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、&lt;!ATTLIST 肉 类型( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉"&gt;元素肉可以有“类型”属性，类型属性可以选择 鸡肉 | 牛肉 | 猪肉 | 鱼肉其中一个，默认是“鸡肉”<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3、&lt;!ATTLIST 联系人 编号 ID #REQUIRED&gt;联系人元素有且必须有编号属性，其类型是ID型的，ID型或者是IDREF型的属性值必须是一个有效的XML名称，它由字母、数字或下划线开始，名字中不能出现空白符。类似Html中的ID。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4、另外类型NMTOKEN和NMTOKENS还有NOTATION类型我还不是太明白，那位明白的不妨给出^_^。<BR><img src ="http://www.blogjava.net/lqsun/aggbug/1826.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqsun/" target="_blank">Boris-Java</a> 2005-03-08 14:23 <a href="http://www.blogjava.net/lqsun/archive/2005/03/08/1826.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XQuery的一个简单例子（转载）</title><link>http://www.blogjava.net/lqsun/archive/2005/03/08/1821.html</link><dc:creator>Boris-Java</dc:creator><author>Boris-Java</author><pubDate>Tue, 08 Mar 2005 04:25:00 GMT</pubDate><guid>http://www.blogjava.net/lqsun/archive/2005/03/08/1821.html</guid><wfw:comment>http://www.blogjava.net/lqsun/comments/1821.html</wfw:comment><comments>http://www.blogjava.net/lqsun/archive/2005/03/08/1821.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqsun/comments/commentRss/1821.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqsun/services/trackbacks/1821.html</trackback:ping><description><![CDATA[来源：<A href="http://bbs.xml.org.cn/index.asp">中国XML论坛</A><BR><BR>看到有人问如何使用xquery，其实我也是个菜鸟。<BR>刚刚运行了两个例子，给不会的指个路。<BR>首先下载saxon8.1.1&nbsp;&nbsp;&nbsp;<A class=contentlink href="http://saxon.sourceforge.net/" target=_blank><FONT color=#000050>http://saxon.sourceforge.net/</FONT></A><BR>Saxon-B&nbsp;8.1.1是免费的，Saxon-SA&nbsp;8.1.1是有试用期的，前者就够了。<BR>系统要安装jdk1.4.1以上版本，因为saxon是用这个版本写的，但不知道1.3.1行不。<BR>记得设置JAVA_HOME环境变量指向jdk。<BR>然后，试试吧！ 
<P></P>
<P>例子：文件characters.xml</P>
<P>&lt;characters&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Aleria&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Female&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Heroleim&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Bard&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;5&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;25&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Shar&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Male&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Human&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Merchant&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;6&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;28&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Gite&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Female&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Aelvar&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Mage&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;7&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;18&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Horukkan&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Male&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Udrecht&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Warrior&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;5&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;32&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Gounna&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Female&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Noleim&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Mage&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;8&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;31&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Sheira&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Female&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Human&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Cleric&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;4&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;17&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Drue&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Female&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Voleim&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Warrior&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;6&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;32&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;character&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Paccu&lt;/name&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;gender&gt;Male&lt;/gender&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;species&gt;Human&lt;/species&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;vocation&gt;Merchant&lt;/vocation&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;level&gt;5&lt;/level&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;health&gt;24&lt;/health&gt;<BR>&lt;/character&gt;<BR>&lt;/characters&gt;</P>
<P>查询文件：Date.xquery<BR>for&nbsp;$character&nbsp;in&nbsp;doc('characters.xml')//character<BR>order&nbsp;by&nbsp;$character/name&nbsp;descending<BR>return<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$character/name}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dateReport&gt;<BR>(:&nbsp;Stylus&nbsp;Studio&nbsp;meta-information&nbsp;-&nbsp;(c)1998-2003.&nbsp;Sonic&nbsp;Software&nbsp;Corporation.&nbsp;All&nbsp;rights&nbsp;reserved.<BR>&lt;metaInformation&gt;<BR>&lt;scenarios/&gt;&lt;MapperInfo&gt;&lt;TargetSchema&nbsp;SchemaFilePath=""&nbsp;SchemaRoot=""&nbsp;AssociatedInstance=""/&gt;&lt;/MapperInfo&gt;<BR>&lt;/metaInformation&gt;<BR>:)</P>
<P>在命令提示下，输入：<BR>set&nbsp;classpath=d:\saxon\saxon8.jar&nbsp;（saxon8.jar所在文件夹）<BR>java&nbsp;net.sf.saxon.Query&nbsp;-s&nbsp;characters.xml&nbsp;Date.xquery<BR>ok!<BR>看结果吧！</P>
<P>D:\xml&gt;java&nbsp;net.sf.saxon.Query&nbsp;-s&nbsp;characters.xml&nbsp;Date.xquery<BR>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Sheira&lt;/name&gt;<BR>&lt;/dateReport&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Shar&lt;/name&gt;<BR>&lt;/dateReport&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Paccu&lt;/name&gt;<BR>&lt;/dateReport&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Horukkan&lt;/name&gt;<BR>&lt;/dateReport&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Gounna&lt;/name&gt;<BR>&lt;/dateReport&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Gite&lt;/name&gt;<BR>&lt;/dateReport&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Drue&lt;/name&gt;<BR>&lt;/dateReport&gt;<BR>&lt;dateReport&gt;<BR>&nbsp;&nbsp;&nbsp;&lt;name&gt;Aleria&lt;/name&gt;<BR>&lt;/dateReport&gt;</P><img src ="http://www.blogjava.net/lqsun/aggbug/1821.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqsun/" target="_blank">Boris-Java</a> 2005-03-08 12:25 <a href="http://www.blogjava.net/lqsun/archive/2005/03/08/1821.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习java&amp;xml的第一天，先混个脸熟</title><link>http://www.blogjava.net/lqsun/archive/2005/03/07/1802.html</link><dc:creator>Boris-Java</dc:creator><author>Boris-Java</author><pubDate>Mon, 07 Mar 2005 08:19:00 GMT</pubDate><guid>http://www.blogjava.net/lqsun/archive/2005/03/07/1802.html</guid><wfw:comment>http://www.blogjava.net/lqsun/comments/1802.html</wfw:comment><comments>http://www.blogjava.net/lqsun/archive/2005/03/07/1802.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqsun/comments/commentRss/1802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqsun/services/trackbacks/1802.html</trackback:ping><description><![CDATA[<P>今天第一天开始啃Brett McLaugblin的那本《Java &amp; XML》，先是浏览了全书，把里面的好多概念理了一下，将今天理解的概念的解释暂时记录在这里，日后再作整理。<BR><BR>1、xml：这个不用说了，可扩展标记语言<BR>2、dtd&amp;schema：用于规定xml文档正确性的东东。这个东西里面内容好多，够学一阵子的。<BR>3、xsl：eXtensible Stylesheet Language，可扩展的样式表语言，这是个好东西，可以将xml转化成任何东西（比如转化成javaBean的类源文件，或者sql脚本）<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天还得知，xsl包括两大部分，xslt（eXtensible Stylesheet Language Transformation）和xsl-fo（formatting Object），前一部分用来转换xml，后一部分用来格式化输出（类似css的功能）。<BR>4、xslt：如前所述，用来转化xml，他可以选择那些显示那些不显示，可以排序，甚至可以统计，比如count（）。而且目前xslt也在快速发展着，新的函数库层出不穷，值得期待和深入学习。<BR>5、xPath：xslt中一个重要组成部分，目前版本好像是2.0，XPath是用来帮助XSLT在XML源文档中查找定位信息的语言，功能非常的强大，日后将作为一个专题进行学习。<BR>6、SAX：Simple Application interface for XML，一个简单的xml处理api，处理一般流程如下：</P>
<UL>
<LI>使用某厂商的解析器创建SAXParser实例 
<LI>注册回调方法（内容处理，错误处理，声明处理，dtd处理等） 
<LI>开始解析（解析过程中，回调方法将会被调用） 
<LI>////////////////////////////////*********************** 
<LI>SAX处理的方式是顺序读取xml文档的。 
<LI>SAX的标准的接口定义可以在jdk的rt.jar当中找到，但是解析器必须另外指定，xerces.jar是apache项目组的一个开源的解析器。</LI></UL>
<P>7、dom：高级抽象的xml操作接口，当然也要使用比如xerces这样的解析器。dom中以树型防问xml文档，并且有xslt，xPath等的支持。<BR>8、JAXP：sun公司的称为“Java API for XML Parsing”的Java XML解析器API，其中<STRONG>并不包含解析器！<BR></STRONG>JAXP是一个抽象层，给出接口定义，他必须使用第三方的如xerces这样的解析器，但是他可以通过配置文件的形式很方便的更换解析器，他的作用就是给不同的解析器提供了一个统一操作的平台，提供SAX的钩子，提供DOM的钩子。<BR>9、xQuery：一种更加强大的XML查询语言，如果XML有一天可以取代关系数据库的话，这个东东肯定会像SQL今天这样风行！这边有一个简单的<A href="http://www.blogjava.net/lqsun/archive/2005/03/08/1821.html">例子</A>来演示XQuery<BR><BR>讲的不对的地方请指正！</P><img src ="http://www.blogjava.net/lqsun/aggbug/1802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqsun/" target="_blank">Boris-Java</a> 2005-03-07 16:19 <a href="http://www.blogjava.net/lqsun/archive/2005/03/07/1802.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>