理论上,您可以尝试破解 XML Schema 来验证不正确大写的元素名称。
这可以通过使用XML Schema 中的替换组机制来完成。例如,如果您的架构已定义:
<xsd:element name="foobar" type="xsd:string"/>
那么您可以将以下内容添加到 XML 模式中:
<xsd:element name="Foobar" type="xsd:string" substitutionGroup="foobar"/>
<xsd:element name="FooBar" type="xsd:string" substitutionGroup="foobar"/>
<xsd:element name="fooBar" type="xsd:string" substitutionGroup="foobar"/>
<xsd:element name="FOOBAR" type="xsd:string" substitutionGroup="foobar"/>
等等
尝试并预测他们可能犯的错误。对于每个元素,可能有 2^n 种可能的情况组合,其中 n 是名称的长度(假设名称的每个字符都是一个字母)。
在实践中,这太麻烦了,只会拖延问题而不是解决问题,而且很可能行不通。如果用户没有意识到 XML 是区分大小写的,那么他们可能没有与开始标记的大小写匹配的结束标记,并且仍然无法验证。
正如其他人所说,要么预处理提交的输入以修复案例,要么让用户在提交之前生成正确的输入。