Иногда, XML схемы не соответствуют стандарту w3.org и это грустно :-(
Данный скрипт исправляет следующие ошибки:
- У открывающих и закрывающих тегов узлов схемы устанавливается префикс пространства имен w3.org, объявленный в заголовке схемы
- Наименования узлов схемы регистрозависимые, поэтому они устанавливаются по словарю в соответствии с пространством имен w3.org
Пример:
<!-- было -->
<simpletype>
<restriction base="cml:НаименованиеТип"></restriction>
</simpletype>
<!-- стало -->
<xsd:simpleType>
<xsd:restriction base="cml:НаименованиеТип"></xsd:restriction>
</xsd:simpleType>
Скрипт разработан в среде OScript 1.3.0 Тестирование на более ранних версиях интерпретатора не проводилось.
Требуется библиотека cmdline Установите библиотеку через пакетный менеджер OScript: opm install cmdline
Устанавливайте библиотеку в окне CMD, которое запущено от имени администратора.
-path <полный путь к схеме> - полный путь, включающий имя файла обрабатываемой XML схемы
Скрипт получает префикс пространства имен w3.org из атрибута xmlns:xsd="http://www.w3.org/2001/XMLSchema"
заголовка XML схемы
Скрипт по узлу <xsd:schema
определяет необходимость устанавливать префикс в тегах
Скрипт, если нужно устанавливает префикс пространства имен w3.org в открывающих и закрывающих тегах XML схемы
Скрипт по словарю меняет наименования элементов, в которых используется camelCase стиль, пример simpleType
Скрипт не меняет исходный файл, а создает новый файл XML схемы с суффиксом _modify
oscript cxs.os -path d:\tmp\CommerceML2-10.xsd
где d:\tmp\CommerceML2-10.xsd
- путь к файлу, который нужно обработать