以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  XML问题解答  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=8352)


--  作者: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文档时速度会较慢。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms