【发布时间】:2016-05-12 19:57:56
【问题描述】:
我想这是一个基本问题,但模式对我来说似乎很混乱。 我想将一些字符列入黑名单,例如 +、-、@、#、。 如果字符在 xml 字段中,那么我想使 xml 无效。
在下面的示例中,如果字符串字段包含上述任何字符,我想将 xml 返回为无效。 如果数据是这样的“你好”。它应该是有效的。 我应该如何写我的模式。感谢您对此进行检查。
XML:
<DataType>System.String</DataType>
<Value>
<String>Data@yours</String>
</Value>
在 XSD 中:
<xs:element name="Value">
<xs:complexType>
<xs:sequence>
<xs:element name="String" type="xs:string" />
</xs:sequence>
<xs:restriction base="xs:string">
<xs:pattern value="[^+-@#%&()<>?]"/>
</xs:restriction>
</xs:complexType>
</xs:element>
进一步编辑这部分:
我收到了以下错误: 解析 EntityName 时出错。 - 在我的代码中 在唯一的 xsd 验证器工具中,实体名称必须紧跟在实体引用中的 & 之后。 http://www.utilities-online.info/xsdvalidation/#.VzTwcYSDFBc
似乎没有遵循这些特殊字符,我该如何更改? 再次感谢。
【问题讨论】:
-
只是想一想,如果那里的正则表达式应该匹配 valid 字符串,不应该是
[^+-@#%&()<>?]+吗?
标签: c# regex xml xsd pattern-matching