本质上,我想知道是否可以用正则表达式替换特定的 XSD 架构。我知道 XML Schema 语言可以生成 XSD,其有效 XML 实例集可以是任何类型的语言(甚至是上下文相关的)。我想识别那些“正则表达式等效”的模式。在解决了以下问题后,我提出了这个问题:
我需要解析特定的文本格式,我首先尝试了正则表达式,我发现 regexp 足以解析它。然后我想为我收到的这种格式的消息制作一个 XML 表示,所以我用 XML 元素映射了正则表达式组。然后,我根据正则表达式的结构手动创建了一个 XSD 模式。最后,我有一个可以替换我的正则表达式的模式,从某种意义上说,原始的正则表达式可以从模式中构造出来。我还设法做相反的事情:从正则表达式自动创建模式。因此,我可以将消息转换为 XML 并同时对其进行验证。我的问题是:
每个正则表达式都可以用 XSD 模式表示吗?(我的意思是,给定一个能够生成 XSD 模式的正则表达式)
给定一个任意 XSD 模式,有没有办法确定是否存在一个表示给定模式的正则表达式?
编辑:可能第一个问题的答案是肯定的,因为我用我的正则表达式做的,不依赖于特定的正则表达式(这不是每个正则表达式的证明)。