Board logo

标题: xml的xsd的ENTITY数据类型如何定义或引用 [打印本页]

作者: czjt1234    时间: 2020-3-21 14:01     标题: xml的xsd的ENTITY数据类型如何定义或引用

具体报酬:10元人民币
支付方式:支付宝,微信均可
联系方式:QQ20147578
有效期限:3月底之前
需求描述:
(1)系统环境(XP/Win2003/Vista/Win7,中文版/英文版,专业版/家庭版/精简版,等)

以下是 1.xsd 1.xml 1.vbs 文件


  1. <?xml version="1.0" encoding="GB2312"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3.   <xs:element name="n">
  4.     <xs:complexType>
  5.       <xs:all>
  6.         <xs:element name="s">
  7.           <xs:complexType>
  8.             <xs:simpleContent>
  9.               <xs:extension base="xs:string">
  10.                 <xs:attribute name="NOTATION">
  11.                   <xs:simpleType>
  12.                     <xs:restriction base="xs:NOTATION">
  13.                       <xs:enumeration value="jpg"/>
  14.                     </xs:restriction>
  15.                   </xs:simpleType>
  16.                 </xs:attribute>
  17.                 <xs:attribute name="ENTITY1" type="xs:ENTITY"/>
  18.                 <xs:attribute name="ENTITIES1" type="xs:ENTITIES"/>
  19.               </xs:extension>
  20.             </xs:simpleContent>
  21.           </xs:complexType>
  22.         </xs:element>
  23.       </xs:all>
  24.     </xs:complexType>
  25.   </xs:element>
  26.   <xs:notation name="jpg" public="image/jpeg" system="viewer.exe"/>
  27.   <xs:notation name="mp3" public="image/jpeg" system="viewer.exe"/>
  28. </xs:schema>
复制代码





  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE n [
  3.   <!NOTATION jpg SYSTEM "image/jpeg">
  4.   <!NOTATION mp3 SYSTEM "wmplayer.exe">
  5.   <!ENTITY f1 SYSTEM "1.jpg" NDATA jpg>
  6.   <!ENTITY f2 SYSTEM "1.mp3" NDATA mp3>
  7.   <!ELEMENT n ANY>
  8.   <!ELEMENT s ANY>
  9.   <!ATTLIST s NOTATION (jpg) #REQUIRED
  10.               ENTITY1 ENTITY #REQUIRED
  11.               ENTITIES1 ENTITIES  #REQUIRED>
  12. ]>
  13. <n>
  14.   <s NOTATION="jpg"
  15.      ENTITY1="f1"
  16.      ENTITIES1="f1 f2"/>
  17. </n>
复制代码




  1. Option Explicit
  2. Dim oDOMDocument, oXSD, oXMLDOMElement
  3. Set oXSD = CreateObject("Msxml2.XMLSchemaCache.6.0")
  4. oXSD.add "", "1.xsd"
  5. Set oDOMDocument = CreateObject("Msxml2.DOMDocument.6.0")
  6. oDOMDocument.setProperty "ProhibitDTD", "false"
  7. oDOMDocument.setProperty "ResolveExternals", "True"
  8. oDOMDocument.validateOnParse = True
  9. oDOMDocument.schemas = oXSD
  10. oDOMDocument.load "1.xml"
  11. If oDOMDocument.parseError.errorCode <> 0 Then    '如果加载xml出错
  12.     MsgBox oDOMDocument.parseError.reason & vbLf & _
  13.            "第 " & oDOMDocument.parseError.line & " 行"
  14.     WScript.Quit()
  15. End If
  16. MsgBox oDOMDocument.xml
  17. Set oXMLDOMElement = oDOMDocument.documentElement  '根节点
  18. MsgBox oXMLDOMElement.SelectNodes("s")(0).getAttribute("NOTATION")  & vbLf & _
  19.        oXMLDOMElement.SelectNodes("s")(0).getAttribute("ENTITY1")   & vbLf & _
  20.        oXMLDOMElement.SelectNodes("s")(0).getAttribute("ENTITIES1")
复制代码




dtd里是没问题的,vbs中取消xsd可以通过






欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2