关于一个xml schema校验问题的解决办法
2014-01-13 18:11
513 查看
今年的一个项目用到了xml的schema校验。但是在使用的过程中遇到了一个问题:
schema在控制字符串长度的时候用的是字符个数,比如 "abc" 和 “我爱你” 的长度都是3。但是按照字节来算。它们的长度是不一样的。
如果需要通过schema来实现按字节长度来校验的话,这里有个解决方式。
很简单,将字符串中的汉字替换为2个或多个(看编码)字母就OK了。校验失败后,会有对应的提示消息,因为原字符已经被修改,
如果出错,校验结果会提示不准确。所以,将汉字替换为字母或其他单字节时最好是进行编码,并保证每个包含汉字的节点被不同的但字节串
替换,且将但字节串与原内容进行映射。这样遇到异常情况,可以将提示信息在替换回原来的样子,就可以知道那个节点下的什么内容出错了。
schema在控制字符串长度的时候用的是字符个数,比如 "abc" 和 “我爱你” 的长度都是3。但是按照字节来算。它们的长度是不一样的。
如果需要通过schema来实现按字节长度来校验的话,这里有个解决方式。
很简单,将字符串中的汉字替换为2个或多个(看编码)字母就OK了。校验失败后,会有对应的提示消息,因为原字符已经被修改,
如果出错,校验结果会提示不准确。所以,将汉字替换为字母或其他单字节时最好是进行编码,并保证每个包含汉字的节点被不同的但字节串
替换,且将但字节串与原内容进行映射。这样遇到异常情况,可以将提示信息在替换回原来的样子,就可以知道那个节点下的什么内容出错了。
相关文章推荐
- 关于目标跟踪matlab代码调试时一个问题的解决办法
- 关于修复VS2008提示加载安装组件出现问题和点击VS的设计窗口出现一个WINDOW installer的提示的问题的解决办法
- 关于maven项目报错,但是找不到问题的所在的一个解决办法
- 关于一个给二维数组循环赋值问题的本渣研究出的解决办法[C#]
- 关于编译Duilib出现的问题的一个解决办法
- 关于个推“证书只能绑定一个bundleId”问题的解决办法
- 关于Web程序打开Word、Excel后,不能关闭的问题的一个解决办法
- 一个mount问题解决办法,关于partprobe命令
- 关于UIWebView一个很奇怪问题的另类解决办法(高度递增问题)
- 一个比较愚蠢的办法,解决excel表,关于导出时间类型转换成QString的问题
- 关于Powerbuilder调用VC的dll出现的一个问题及解决办法
- 关于BadgeView遇到的一个奇怪的问题和解决办法
- 安装Piwik时遇到的一个奇怪的关于PHP参数问题的解决办法
- 关于VC写DLL文件产生的一个fatal errorc1083问题的解决办法
- 关于TableView中不止一个section的情况下首个cell的y轴不为0的会造成的问题和解决办法
- 关于个推“证书只能绑定一个bundleId”问题的解决办法
- 关于Chrome浏览器加载某些CSS文件超慢或超时的奇葩问题的解决办法
- 最近网站改版关于IE8兼容的一些问题以及解决办法
- 关于一个《System.Windows.Markup.XamlParseException Message=设置属性“”时出现异常》问题的解决
- 关于导航控制器使用手势滑动返回上一个界面中途导航条消失的解决办法