如何在C#中使用XML模式正则表达式?
我有一个由两部分组成的问题:如何在C#中使用XML模式正则表达式?,c#,regex,xsd,C#,Regex,Xsd,我有一个由两部分组成的问题: 如何获取XSD方面的regex表达式,然后使用它来确定字符串是否与限制匹配?在我看来,这是“如何将XMLSchema正则表达式转换为.NETregex”,但如果您有其他方法,而不是转换表达式,我愿意接受建议 如果测试(#1)失败,我如何使用XSD模式regex自动创建满足约束的字符串 这是你的答案。假设关联的简单类型有更多的方面,并且您只想根据模式一进行验证,那么您只需在中找到枚举方面,使用该方面的副本创建一个新的XmlSchemaSimpleType,使用新的Xm
XSD
方面的regex
表达式,然后使用它来确定字符串是否与限制匹配?在我看来,这是“如何将XMLSchema正则表达式转换为.NETregex
”,但如果您有其他方法,而不是转换表达式,我愿意接受建议XSD
模式regex
自动创建满足约束的字符串将XML模式正则表达式转换为.NET正则表达式并不太困难 基本上,您需要用它们的.NET替代品(如\p{u xmlC}和\p{u xmlD})替换一些模式,如\c和\D 此外,还需要将表达式换行成“^”和“$”标记 .NET在中的预处理中实现此方法 但是,如果决定复制粘贴实现,请小心 您需要更换回路
for(int-position=0;position
与
for(int-position=0;position
因为出于优化原因,预处理假定输入表达式包含在括号中。您无法使用正则表达式(可靠地)处理XML。你能提供更多细节吗,比如你想做什么样的验证或正则表达式解析?从XSD(例如,)中获取正则表达式,并在.NET中使用普通字符串值(“ABC”)。为什么不根据模式验证XML?@JohnSaunders,通常它可以是一个收集数据的自定义表单;字段级验证,其中字段映射到XSD中的特定简单内容。想象一下,验证是在你打字的时候完成的……这看起来很有希望!我将尝试看看它在我的应用程序中是否有效。您知道继承的模式方面是否正确地应用于XmlSchemaDatatype.ParseValue吗?