VBScript:使用MSXML DOM将内联架构放入xml的问题

时间:2014-05-05 06:54:32

标签: vbscript xsd msxml

亲爱的交换者,

对于项目,我希望生成一个先前定义格式的xml文件,其中包含一个内联架构。然后将此xml与另一台计算机上运行的其他软件进行通信。

脚本在siemens运行时HMI上运行,这似乎有时会影响确切的功能。

我不打算验证xml,我只想包含(最好来自.xsd文件)内联架构。

我一直试图找到一个不错的方法,但没有偶然发现任何应该用于这样做的方法。我已经成功地推出了xml数据,但没有使用内联架构。

我主要尝试找到一种合适的方法,这会导致尝试使用'textattribute'。使用'opentextfile'读取.xsd文件,将内容转换为字符串,然后使用该字符串添加为textattribute。

正如我相信这可能是可行的,我也遇到了<,>的问题。被转换为< ,> 我还没有找到解决方案,我想避免尝试编写完整模式的脚本...因为它已经完全构建。

对于任何含糊不清的事我道歉,如果有必要,请评论如何更清楚地形成我的问题。

问候

1 个答案:

答案 0 :(得分:0)

由于您的问题涉及XML,“textattribute”,“opentextfile”和“to string”显然是不好的概念/想法。

oXml1成为您的数据Msxml2.DOMDocument(刚刚创建/加载)和oXsd1您加载的架构。然后

  Dim r : Set r = oXml1.documentElement
  r.insertBefore oXml1.createComment("END OF SCHEMA"), r.firstChild
  r.insertBefore oXsd1.documentElement, r.firstChild
  r.insertBefore oXml1.createComment("START OF SCHEMA"), r.firstChild

会给你类似的东西

<?xml version="1.0"?>
<catalog xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:x="urn:book">
        <!-- START OF SCHEMA -->
        <xsd:schema targetNamespace="urn:book">
                <xsd:element name="book">
                        <xsd:complexType>
                                <xsd:sequence>
                                        <xsd:element name="author" type="xsd:string"/>
                                        <xsd:element name="title" type="xsd:string"/>
                                </xsd:sequence>
                                <xsd:attribute name="id" type="xsd:string"/>
                        </xsd:complexType>
                </xsd:element>
        </xsd:schema>
        <!-- END OF SCHEMA -->
        <x:book id="bk101">
                <author>Gambardella, Matthew</author>
                <title>XML Developer's Guide</title>
        </x:book>
</catalog>