我写了一个schema, 可是相应的xml不受它控制。也就是说,不在schema描述内的标志或错误的标志仍然可以在IE中正常显示而不报错阿。
哪位帮帮忙?????说说如何让schema工作起来???
---------------------------------------------------------------
简单例证:
asp服务器端验证,包含数据book.xml,schema文件scm.xml,asp验证文件scm.asp
book.xml
1<moonpiazza>
2<book>
3<书名>基于XML 的 ASP.NET开发<!--书名--> \-->节点名称修改成<bookname>测试
4<定价>42<!--定价--> \-->节点值修改成42.00测试
5<作者>Dan Wahlin/王宝良<!--作者-->
6</bookname></book>
7<book>
8<书名>XML应用的UML建模技术<!--书名-->
9<定价>32<!--定价-->
10<作者>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
:_)