-- 作者:yuji1998
-- 发布时间:6/18/2004 1:06:00 AM
-- XML问题解答
问:我用记事本建立的XML文件,使用中文的元素标记名,在IE中可以正常显示,但是在XML Notepad中报告却出错,请问XML元素名能否使用中文字符? 答:可以,XML元素名可以由字母、除英文外的别国文字、下划线、冒号、数字、连字符、句号,其中数字、连字符、句号不能为首字符,当然,如果你使用中文元素名,应该在句首指定 或 。至于XML Notepad不能识别中文元素名,应该说这是其软件自身的不足,目前对于各种XML解析工具或XML文本工具,均要求其支持UTF-8和UTF-16编码,这是最基本的,但并不是所有工具都支持非Unicode编码,这就好像并不是所有浏览器都支持JavaScript一样,尽管HTML标准本身支持脚本嵌入。需要说明的是,当我们把XML作为一种交换数据的词汇标准时,一般都是希望定义的元素标记具有典型性与广泛性,可以被互联网上的其它应用轻松识别,从这个角度说,我们鼓励大家在建立专用的XML词汇表时,尽量采用约定俗成的,专业化、标准化、国际化的英文命名。 问:URI和URL有什么不同? 答:URI是统一资源标识符(Uniform Resource Identifier)的缩写,URL是统一资源定位符(Uniform Resoure Locator)的缩写,另外还有URN也经常使用,它是统一资源名称(Uniform Resource Name)的缩写。URL是通过"通讯协议+网络地址"字符串来唯一标识信息位置及资源访问途径的一种方法;URN则主要用于唯一标识全球范围内由专门机构负责的稳定的信息资源,URN通常给出资源名称而不提供资源位置;URI是一种用字符串唯一标识信息资源的工业标准(RFC2396),它使用的范围及方式都较为广泛,在XML中用URI引用来标识元素的命名空间(Namespace),URI包括了URL和URN,是二者的超集。 问:我想在VC、VB中使用SAX可以吗? 答:可以,在微软最新发布的MSXML3以及MSXML4 Preview中,已经包含了对SAX2的支持,MSXML开发包是一个COM组件,其V3.0的文件名为MSXML3.dll,V4.0的文件名为MSXML4.dll,用户可以到XML技术网中下载它们的安装文件,其网址为http://www.chinaasp.com/xml/download/。以下是MSXML3中新增的支持SAX2的COM接口列表: IMXAttributes : IDispatch IMXReaderControl : IDispatch IMXWriter : IDispatch IVBSAXAttributes : IDispatch IVBSAXContentHandler : IDispatch IVBSAXDeclHandler : IDispatch IVBSAXDTDHandler : IDispatch IVBSAXEntityResolver : IDispatch IVBSAXErrorHandler : IDispatch IVBSAXLexicalHandler : IDispatch IVBSAXLocator : IDispatch IVBSAXXMLFilter : IDispatch IVBSAXXMLReader : IDispatch 问:我想通过SAX访问一个动态的XML数据流可以吗? 答:可以,SAX允许所访问的XML数据为字符流形式,在SAX中用InputSource类表示可能的数据源,以SAX for Java为例,其连接语句如下所示: InputSource source = new InputSource(xmlstring); SaxParser.parse(source); 问:我想在浏览器中格式化显示XML,该如何实现? 答:目前支持XML的浏览器只有IE,要在浏览器中格式化显示XML数据,需要指定样式表,可以使用CSS或XSLT来实现,以下是在XML文件中引用CSS和XSLT样式表的范句: <?xml:stylesheet href="example.css" type="text/css"?> <?xml:stylesheet href="example.xsl" type="text/xsl"?> 问:听说在SQL Server 2000中可以通过浏览器访问数据库并返回XML记录集,我已经装了SQL Server 2000,请问要怎样可以从浏览器访问数据库? 答:为了通过浏览器访问SQL Server 2000数据库,你还需要安装IIS 5(如果直接使用Query Analyzer来获取记录集就不需要IIS),然后使用SQL Server 2000自带的SQL XML Support in IIS工具建立一个虚拟目录与实际的数据库对应,该虚拟目录是通过URL访问SQL Server数据库的入口,一个典型的HTTP访问语句如下所述: http: // localhost / Northwind ? sql = select +name+ from + employees + for + xml + auto 其中,localhost表示本机,Northwind表示在SQL XML Support in IIS中建立的虚拟目录名,"?"后面跟SQL查询语句,for xml auto子句指定了将SELECT语句映射到XML中的具体方式。即将结果集作单个表模型化,所查询的字段可作为属性或子元素返回,并且XML结果集的线性层次关系应与数据库表在select排列中的顺序相一致。 问:XML-Data与Schema有什么区别? 答:在XML中XML-Data与Schema的区别是细微的。通常我们将对数据的某种约束规则统一称之为Schema即模式,这种称法在数据库中广泛使用并被XML所沿袭。从这一角度而言,DTD、XML-Data都可算是用于XML的某种Schema,凡是符合Schema约束的XML文档我们便称之为有效的XML,为了区别起见,我们可以将XML-Data称之为XML-Data Schema。XML-Data Schema最早由微软提出,并于1998年1月被W3C接受成为“建议”(Note),随后,在1999年W3C在XML-Data的基础上发布了“XML Schema工作草案”,这也就是我们通常所说的XML Schema,XML Schema于2001.5.2日正式发布为W3C标准。作为XML-Data的创建者,微软公司在XML Schema V1.0尚未正式出炉前就已经在他的MSXML解析器、IE浏览器、Biztalk Server 2000中提供了对XML-Data的广泛支持(事实上它们支持的是XML-Data的一个子集),鉴于它与XML Schema的血缘关系,我们通常也称其为Schema,即MS Schema。基于XML-Data及其扩展的Schema有一共同特点,即Schema自身也都是标准的XML文档,这与传统的DTD规范是截然不同的,这也是我们通常将XML约束简单划分为DTD与Schema的主要依据。需要指出的是,在IE、MSXML等工具中所支持的MS Schema与目前W3C正式发! 布的XML Schema并不完全兼容(也就是说,在Biztalk Server 2000中建立的xsd文件未必会符合标准的XML Schema规范)。 问:请问使用SOAP的安全性怎样? 答:SOAP本身不提供安全特性,由于SOAP采用HTTP作为实际的数据传输协议,因此其安全性也沿袭了HTTP。通常我们可以使用标准的网络安全协议来实现基于SOAP的数据传输安全,如SSL、S-HTTP、PCT、TLSP等。在某些情况下也可采用数据加密的方式,即在应用层先对输入参数和返回结果集进行加密,然后再使用SOAP传递已加密的XML数据。 问:DOM2与DOM1相比有什么不同? 答:DOM Level 2较DOM Level 1增加如下功能接口: 视图(View):提供视图与文档的联系 样式表(Style Sheet):提供访问和修改样式表的方法 层叠样式表(CSS2):提供CSS2兼容的方法 事件(Events):提供各种事件的接口 文档遍历(Document traversal):提供遍历文档层次的接口 文档范围(Document range):提供分割文档范围的接口 问:请问在HTML页面中该怎么使用DSO? 答:XML DSO是数据源对象(Data Source Object)的缩写,它是微软为了在HTML页面中绑定使用XML数据所采用的一种专利技术,DSO在Web页中以数据岛的形式实现,即采用一个新的"XML"标记,"XML"标记中包含一个id属性用于标识对XML DSO的引用。客户端的IE浏览器可以识别XML DSO,并直接在客户端操作DSO数据源。一个典型的XML DSO数据源声明如下: <xml id="exampledso"> <!--Here is xml data body--> <orderform> <productname>glove</productname> <amount>5000</amount> <unit>pair</unit> <deadline>2001.8.20</deadline> </orderform> </xml> 问:使用浏览器浏览XML的速度比HTML快吗? 答:通常不会,XML与HTML的区别并不在于对浏览速度的改善,而在于XML是面向数据内容的,HTML是面向格式化显示的,计算机应用可以自动地理解XML文档并实现对其各种操作(包括在浏览器中的格式化显示),XML的出现为万维网信息浏览模式提供了更丰富的空间。但只有在特殊情况下,人们可以在浏览XML文档时获得速度上的好处,比如某人要查看新浪商城中的某件商品的详细信息,共有两页,第一页是关于商品的价格和功能介绍,第二页是关于生产厂家的背景介绍,若采用HTML表示,需要建立两个HTML文件,而采用XML,只需建立一个XML文件(需结合XSLT使用),由于XML文件在浏览第一页时已经获得,因此在浏览第二页时无需与Web服务器交换,当然,由于将两个文件的信息合一,因此在第一次浏览XML文档时速度会较慢。
|