我从客户那里得到了一个类似以下的架构。我将其缩短并更改了一些名称。
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://mysite.local/bo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Data">
<xs:complexType>
<xs:sequence>
<xs:element name="UUID">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern
value="[a-fA-F0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}">
</xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element type="xs:date" name="DOB"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我构建了以下xml
<?xml version="1.0" encoding="utf-8"?>
<Data xmlns="http://mysite.local/bo">
<UUID>0000f34b-0a01-9604-3400-270461ed42b2</UUID>
<DOB>2019-05-14</DOB>
</Data>
在ColdFusion中,我致电<cfset xmlParse( xml, true, fileRead(expandPath("./schema.xsd"), "utf-8"))>
,并抛出一条异常消息:cvc-elt.1.a: Cannot find the declaration of element 'Data'.
Adobe ColdFusion和Lucee对此错误表示同意。
我已将xmlns
属性添加到Data
元素中。我将此xml发送到客户的系统,它被接受并成功处理。我不知道为什么ColdFusion会引发异常。我想这与名称空间有关。