亲爱的交换者,
对于项目,我希望生成一个先前定义格式的xml文件,其中包含一个内联架构。然后将此xml与另一台计算机上运行的其他软件进行通信。
脚本在siemens运行时HMI上运行,这似乎有时会影响确切的功能。
我不打算验证xml,我只想包含(最好来自.xsd文件)内联架构。
我一直试图找到一个不错的方法,但没有偶然发现任何应该用于这样做的方法。我已经成功地推出了xml数据,但没有使用内联架构。
我主要尝试找到一种合适的方法,这会导致尝试使用'textattribute'。使用'opentextfile'读取.xsd文件,将内容转换为字符串,然后使用该字符串添加为textattribute。
正如我相信这可能是可行的,我也遇到了<,>的问题。被转换为< ,> 我还没有找到解决方案,我想避免尝试编写完整模式的脚本...因为它已经完全构建。
对于任何含糊不清的事我道歉,如果有必要,请评论如何更清楚地形成我的问题。
问候
答案 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>