0

我知道这一定是原始问题,但我仍然无法找到解决我的简单问题的方法。

在 BizTalk 解决方案中,我想根据平面文件架构验证入站平面文件(分隔符字符是管道'|')。规则是每条记录(每一行)中必须有完全相同数量的字段。所以反汇编后,没有一个字段必须有换行符(CR LF或\r\n)和管道'|' 字符。

平面文件中的每一行都是一条记录,每条记录有 10 个字段。所以我必须准确 9 '|' 每行中的管道字符。

我尝试使用 XSD 正则表达式验证来解决它,但由于正则表达式不是我的专业领域,我无法创建最终的正则表达式。目前我正在使用 .*(?!([^\r\n\|])).* 进行测试,但是当有超过 9 个 '|' 时它不起作用 chars 但是它在少于 9 个时有效。

最后我想要一个 XSD 正则表达式,它不能允许换行符和 '|' 在字符串中,但可以有空的 '' 值。

我参考了下面的链接来创建我的正则表达式,

XML 模式正则表达式

XML 模式 - 正则表达式

4

2 回答 2

1

我认为您正在尝试解决错误的问题。

首先,你真的需要这样做吗?我不记得曾经需要甚至考虑过您所描述的内容。

其次,您可以验证已解析的 Xml。如果字段计数错误,它将在那里失败。如果你真的需要检查额外的'|',你可以把它放在 Schema 中以在 Map 中测试它。

于 2017-05-10T16:04:31.070 回答
-1

IBM Integration Bus 允许您使用 XSD 描述非 XML 数据格式,从而解决了这个问题。该技术称为数据格式描述语言 (DFDL)。 https://en.wikipedia.org/wiki/Data_Format_Description_Language

于 2017-05-10T16:44:35.963 回答