xml spy
上一页  首页  下一页
验证文档

XMLSpy 2005可以进行两种XML文档的鉴定:
 
·良构性(well-formedness)检查
·有效性(validation)检查




检查良构性
一个XML文档如果具有正确配对的首尾标签、正确的元素嵌套、并没有错位或遗漏的字符(比如写一个实体时漏了后面的分号)等,那么它就是一个良构的(well-formed)XML文档。

要对当前文档进行良构性检查,您可以选择菜单项XML | Check well-formedness或者点击ic_well_formed图标,也可以直接按F7键。主窗口底部将会出现检查结果,比如如果当前文档是良构的话,那么将提示This file is well-formed。


tut_43a

点击OK将关闭检查结果的提示。注意:良构性检查并不对XML文档在结构上是否符合相应的schema作校验,这是在有效性检查中进行的。


有效性检查
如果一个XML文档在结构和内容上符合某个schema的规定,那么该XML文档对于这个schema来说就是有效的(valid)。

要对当前文档作有效性检查,您可以选择菜单项XML | Validate,也可以点击ic_validate图标,或者直接按F8键。检查的结果将显示在主窗口底部,这里我们看到当前文档不是有效的。原因是
Address元素中的City元素后少了一个元素。如果您打开schema文件,可以看到在复杂类型US-Address (即当前Address元素的类型,这是您通过xsi:type属性设定的)的内容模型中,City元素后必须要有一个Zip元素和一个State元素。


修正非有效的文档
进行有效性检查后,如果文档不是有效的,主窗口中存在问题的元素会被自动选中。这里被选中的是City元素。

tut_44a

现在我们看一下Elements窗口的Append栏(右上方)。可以看到,Zip元素的前面有一个感叹号,表明(对于一个有效的文档来说)该元素是当前状态下所缺少的元素。

下面来修正这一有效性错误:

 
1.在Elements窗口的Append选项卡中,双击Zip元素。这将在City元素之后插入一个Zip元素。 
2.按一下Tab键,切换到Zip属性的值域。输入04812后以回车键确认。Elements窗口的Append栏中现在的显示表明当前状态下缺少一个State元素(因为它前面有一个感叹号)。如下图所示。  

tut_44b  

3.在Elements窗口的Append栏中,双击State元素。按一下Tab键后输入Texas,以回车键确认。现在Elements窗口的Append栏中只有灰色的元素了,表明Address元素所需要的子元素已全部具备了。  

tut_45a  
 

完成文档并再次验证
现在离文档创建的完成还缺一个
Person了,待文档完成之后我们将对它再次进行验证。下面:
 
1.点击First元素的值域,输入Fred,然后按回车键。  

tut_45b  

2.用同样的方法为Person元素的其他子元素(LastPhoneExtEmail)输入数据。注意:PhoneExt元素的值必须是一个不超过99的整数(因为在schema中是这么定义的)。将数据输入之后的文档将如下图所示。  

tut_46a  

3.点击主窗口底部的Revalidate 按钮再次进行验证,我们可以看到主窗口底部出现“This file is valid”的提示。  

tut_46b  

4.现在,当前XML文档对于其schema来说是有效的。点击OK以关闭验证结果的提示。 
5.选择菜单项File | Save,然后为您的XML文档取一个合适的文件名(比如CompanyFirst.xml)。注:由于Tutorial文件夹中已经有一个根据本教程创建好的CompanyFirst.xml文件,因此请注意不要覆盖这个文件。 

注:一个非有效的XML文档也可以存盘。但是在您保存一个非有效的XML文档时,在主窗口底部会出现提示。您可以选择Save anyway,以保存该非有效的XML文档。

上一页  首页  下一页

© 2004 Altova

本文档由中国XML论坛Collin Hsu翻译。