VBScript: проблемы с размещением встроенной схемы в XML с использованием MSXML DOM
Уважаемые коллеги по обмену,
Для проекта я должен создать XML-файл ранее определенного формата, который включает в себя встроенную схему. Затем этот XML-файл связывается с другим программным обеспечением, запущенным на другом компьютере.
Скрипт работает на HMI, которая иногда влияет на точные возможности.
Я не хочу проверять xml, я просто хочу включить (желательно из файла.xsd) встроенную схему.
Я пытался найти достойный способ, но не наткнулся на какие-либо методы, которые должны быть использованы для этого. Я успешно выполнил данные XML, но не со встроенной схемой.
В основном я пытался найти подходящий метод, который привел к попытке использовать 'textattribute'. Чтение файла.xsd с помощью 'opentextfile', преобразование содержимого в строку и последующее использование этой строки для добавления в качестве атрибута textattribute.
Поскольку я считаю, что это может быть жизнеспособным, я также столкнулся с проблемой, что <,> преобразуется в <,>я еще не нашел решения для этого, и я хотел бы избежать попыток написать сценарий построения полная схема... Как это уже было построено полностью.
Я прошу прощения за неопределенность, пожалуйста, прокомментируйте, как сформулировать мой вопрос более четко, если это необходимо.
Привет
1 ответ
Поскольку ваша проблема касается 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>