По сути, я хочу знать, можно ли заменить конкретную схему XSD регулярным выражением или нет. Я знаю, что язык XML-схемы может создавать XSD, набор допустимых экземпляров XML которых может относиться к любому типу языка (даже контекстно-зависимому). Я хочу определить те схемы, которые эквивалентны регулярным выражениям. Я придумал этот вопрос после решения следующей проблемы:
Мне нужно было проанализировать определенный текстовый формат, и я сначала попробовал регулярные выражения и увидел, что регулярного выражения достаточно для его анализа. Затем я захотел создать XML-представление для сообщений, которые я получил в этом формате, поэтому я сопоставил группы регулярных выражений с элементами XML. Затем я вручную создал схему XSD на основе структуры регулярного выражения. В конце концов у меня была схема, которая могла заменить мое регулярное выражение в том смысле, что исходное регулярное выражение можно было построить из схемы. Мне также удалось сделать обратное: автоматически создать схему из регулярного выражения. Таким образом, я мог преобразовать сообщение в XML и одновременно проверить его. Мои вопросы:
Может ли каждое регулярное выражение быть представлено схемой XSD? (Я имею в виду, что при наличии регулярного выражения можно создать схему XSD)
Учитывая произвольную схему XSD, есть ли способ определить, существует ли регулярное выражение, представлением которого является данная схема?
EDIT: Вероятно, ответ на 1-й вопрос - да, поскольку я сделал это с моим регулярным выражением таким образом, который не зависел от конкретного регулярного выражения(это не доказательство для каждого регулярного выражения).