XML схема для перечисления в C# или JS - PullRequest
0 голосов
/ 21 января 2020

Я работаю над поиском "схемы", где вы можете написать некоторую часть xpath, и после этого система должна показать вам, каковы дальнейшие возможности узла (так, к какому другому узлу можно получить доступ после указания c узел). Тем не менее, я ищу какое-то решение, которое позволило бы мне составить список возможных родителей и детей на основе схемы.

1 Ответ

1 голос
/ 21 января 2020

Конечно, это сложно из-за подстановочных знаков, групп замещения, типов, полученных из расширения, групп моделей и подобных деталей. Я бы рекомендовал использовать API, предлагаемый процессором схемы, а не пытаться анализировать исходные документы XSD напрямую. Например, одним из подходов было бы создание файла SCM из схемы с использованием Saxon. Затем вы можете найти в файле SCM все объявления определенного имени элемента, найти их типы, а из типов вы можете найти список разрешенных имен дочерних элементов. Возможно, вы захотите сделать это, сначала преобразовав файл SCM в свою собственную структуру данных, соответствующую вашим конкретным потребностям: как вы предполагаете, это может быть простой список пар имен родительский / дочерний элемент (плюс пары имен элемент / атрибут, возможно, ?).

...