XML Azure 数据工厂中的验证

XML validation in Azure Data Factory

我正在尝试在 Azure 数据工厂副本 activity 中使用 XSD 验证(使用 XML 作为源)。我有一个外部 XSD 文件。 我也在尝试了解如何在 Azure 数据工厂中使用它。在副本 activity 中,验证类型部分下有两个选项 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 activity: 这里我的 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>  

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 不符合我的验证规则时,它将失败:

希望我的回答对您有所帮助!