云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

云主机_唐山建设网站_免费1年

小七 141 0

云主机_唐山建设网站_免费1年

官方路线图是了解SAP云平台集成最新进展的一个好方法。在阅读当前的路线图文档时,人工智能网络,我注意到计划于2018年第三季度推出的一项新功能:XML Schema 1.1支持。

XML Schema 1.1版并不完全是全新的(它在2012年成为W3C的建议),但它确实引入了一些有趣的特性。在这篇博文中,我将介绍我认为最有趣的一点:断言。

XMLSchema1.0非常适合描述XML文档的结构,以及元素内容和属性的数据类型。但是,如果您需要表达更复杂的业务规则,返利商城,它就不够了。为此,您要么需要一种基于规则的模式语言,比如Schematron,要么编写定制的验证代码。无论哪种方式,文档验证都变成了一个分两步的过程:一步用于文档结构,另一步用于业务规则。

使用XMLSchema1.1,返利助手,您可以使用新的元素将业务规则添加到现有的模式中。断言是用XPath编写的,它们作为文档验证的一部分进行评估。

下面是一个新的元素的简单示例,我借用了XMLSchema1.1W3C建议:

intRange类型的元素具有min和max integer属性。断言确保范围的开始小于或等于范围的结束。一个合理的规则,很容易在XMLSchema1.1中实现。

测试本身包含在元素的test属性中。测试是XPath2.0表达式,必须计算为true或false。如果测试表达式的计算结果不是布尔值,它将被自动转换,智能物联,就像它被包装在fn:boolean调用中一样。

您的测试表达式可以访问断言所属元素的内容和属性以及该元素的后代。换句话说:您不能访问该元素的同级和祖先。你将在下一节看到一个这样的例子。

让我们看一个更完整的例子。下面是一个XML文档,其中包含一个简化的会议议程:

议程由一些项目组成,例如会话和休息。每个项目都有标题、类型、开始时间和结束时间。只关注结构和数据类型,下面是一个验证议程的XML模式:

让我们将其转换为XML模式1.1,并添加以下两个业务规则的验证:

议程项的结束时间必须大于其开始时间对于除第一个以外的所有项目,开始时间必须等于前一个项目的结束时间

第一个业务规则很容易实现,使用在级别上添加的XMLSchema1.1断言:

第二个业务规则稍微复杂一些。因为它涉及比较元素的属性和同级元素的属性,手游返利,所以不能在级别添加断言。相反,我们将其添加到级别。以下是完整的断言:

测试表达式声明元素必须是第一个项(而不是($item/前一个同级::item)),或者其startTime属性必须与前一个项的endTime属性($item/@startTime eq$item/前一个同级::item[1]/@endTime)匹配。

将断言添加到原始架构中,然后将xmlschema版本更新到1.1,我们得到以下模式:

要执行验证,您需要一个XML编辑器或支持xmlschema 1.1的验证库。我使用了Oxygen XML编辑器,看到了:倒数第二个议程项目的开始时间与前一个项目的结束时间不匹配!XMLSchema1.1断言避免了发布错误会议议程的尴尬

目前,没有标准的方法来定制由失败断言生成的错误消息。但是,有些验证引擎确实支持自定义错误消息。例如,Saxon允许您在Saxon特定的消息属性中添加自己的错误消息:

云集成是否会提供类似的功能还有待观察。