如何让schema工作???

我写了一个schema, 可是相应的xml不受它控制。也就是说,不在schema描述内的标志或错误的标志仍然可以在IE中正常显示而不报错阿。
哪位帮帮忙?????说说如何让schema工作起来???
---------------------------------------------------------------

简单例证:
asp服务器端验证,包含数据book.xml,schema文件scm.xml,asp验证文件scm.asp

book.xml

 1<moonpiazza>
 2<book>   
 3&lt;书名&gt;基于XML 的 ASP.NET开发<!--书名--> \--&gt;节点名称修改成<bookname>测试   
 4&lt;定价&gt;42<!--定价--> \--&gt;节点值修改成42.00测试   
 5&lt;作者&gt;Dan Wahlin/王宝良<!--作者-->
 6</bookname></book>
 7<book>   
 8&lt;书名&gt;XML应用的UML建模技术<!--书名-->   
 9&lt;定价&gt;32<!--定价-->   
10&lt;作者&gt;David Carlson/周靖 侯奕萌 沈金河等<!--作者-->
11</book>
12</moonpiazza>

scm.xml

 1<schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
 2<elementtype content="textOnly" name="moonpiazza"></elementtype>
 3<elementtype content="eltOnly" name="book" order="seq">
 4<element type="书名"></element>
 5<element type="定价"></element>
 6<element type="作者"></element>
 7</elementtype>
 8<elementtype content="textOnly" name="书名"></elementtype>
 9<elementtype content="textOnly" dt:type="int" name="定价"></elementtype>
10<elementtype content="textOnly" dt:type="string" name="作者"></elementtype>
11</schema>

scm.asp

1@ language="VBScript" 
 1   
 2Option Explicit   
 3  
 4Dim cXML   
 5Dim objXMLDOM, objXMLDOM_Scm   
 6Dim objRootNode,objRootNode_Scm   
 7Dim objData   
 8Dim nParseError   
 9Dim cReturnHtml   
10  
11Set objXMLDOM = Server.CreateObject("MSXML2.DOMDocument.3.0")   
12Set objXMLDOM_Scm = objXMLDOM   
13  
14objXMLDOM.async=false   
15objXMLDOM.load(server.mappath("book.xml"))   
16'***** 给根节点增加schema属性,设置schema文件路径   
17set objRootNode = objXMLDOM.documentElement   
18objRootNode.setAttribute "xmlns","x-schema:" & server.mappath("scm.xml")   
19  
20  
21objXMLDOM_Scm.validateOnparse = true '设置必须验证   
22objXMLDOM_Scm.async=false   
23objXMLDOM_Scm.loadxml(objXMLDOM.xml)   
24set objRootNode_Scm = objXMLDOM.documentElement   
25  
26nParseError = objXMLDOM_Scm.parseError.errorCode   
27  
28cReturnHtml = ""   
29IF (nParseError<>0) Then   
30'参看书籍教程中parseError对象属性   
31cReturnHtml = cReturnHtml & "代码:" & objXMLDOM_Scm.parseError.errorCode & "

<br/>

1"   
2cReturnHtml = cReturnHtml & "错误原因:" & objXMLDOM_Scm.parseError.Reason & "

<br/>

1"   
2cReturnHtml = cReturnHtml & "错误字符串:" & objXMLDOM_Scm.parseError.srcText & "

<br/>

1"   
2cReturnHtml = cReturnHtml & "错误行号" & objXMLDOM_Scm.parseError.line & "

<br/>

1"   
2cReturnHtml = cReturnHtml & "错误列数:" & objXMLDOM_Scm.parseError.linepos & "

<br/>

 1"   
 2  
 3Else   
 4cReturnHtml = cReturnHtml & "验证通过!"   
 5End If   
 6  
 7  
 8Call closeObj   
 9  
10Response.Write cReturnHtml   
11  
12  
13  
14  
15' 关闭 objXMLDOM   
16'*****************************************************   
17Sub closeObj   
18Set objXMLDOM = Nothing   
19Set objXMLDOM_Scm = Nothing   
20Set objRootNode = Nothing   
21Set objRootNode_Scm = Nothing   
22End Sub   
23  
24  

:_)

Published At
Categories with Web编程
Tagged with
comments powered by Disqus