xml - Azure 数据工厂中的 XML 验证
问题描述
我正在尝试在 Azure 数据工厂复制活动中使用 XSD 验证(以 XML 作为源)。我有一个外部 XSD 文件。我也在尝试了解如何在 Azure 数据工厂中使用它。在复制活动中,验证类型部分下有两个选项 XSD 和 DTD。但是,它没有任何方法可以将任何外部文件指定为 XSD。文档也不清楚这一点。(https://docs.microsoft.com/en-us/azure/data-factory/format-xml)。这是官方文档所说的:
XML schema validation:
You can choose to not validate schema, or validate schema using XSD or DTD.
When using XSD or DTD to validate XML files, the XSD/DTD must be referred inside the XML
files through relative path
我对这里的第二点感到困惑。
“必须在 XML 文件中引用 XML”是什么意思?
解决方案
我认为它说,我们应该在源 xml 文件中引用 XSD 文件(使用相对路径)。
例如:
在 ADF 中,我设置了一个 Copy 活动:
这里我的 xml 文件和 xsd 文件位于同一个文件夹中,如下所示:
在 order.xml 中,用于xsi:noNamespaceSchemaLocation="order.xsd"
指定 xsd 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<order xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="order.xsd">
<orderItem>43546533</orderItem>
<orderItem>53546533</orderItem>
<orderItem>73546533</orderItem>
<orderItem>93546533</orderItem>
<orderItem>43546533</orderItem>
<orderItem>73546533</orderItem>
<orderItem>03546533</orderItem>
<orderItem>33546533</orderItem>
<orderItem>43216533</orderItem>
<orderItem>1246533</orderItem>
<orderItem>4466533</orderItem>
</order>
订单.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="qualified">
<xsd:element name="order">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="orderItem" type="xsd:string" maxOccurs="10"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
就我而言,当 order.xml 不符合我的验证规则时,它将失败:
希望我的回答对你有帮助!
推荐阅读
- amazon-web-services - 有没有办法检查哪个 S3 存储桶对传出数据的成本最高?
- php - docker mount 卷,但将文件保存在 docker 容器中
- html - html bootstrap 中的表格不适合屏幕
- python - 哪个值用于张量流卷积中的填充?
- python - 在pygame中上下移动矩形的问题
- postgresql - 使用下拉菜单更新 retool 中的表格内容
- javascript - 仅带实时搜索的 Bootstrap-Select
- extjs - 从另一个组件调用方法的问题
- ios - 如何更改 UITextFields 的默认边框颜色
- apache - 如何在 CentOS7 的 Virtualmin 上启用/安装 HTTP/2