xmlParse引发提供名称空间后找不到元素的声明

时间:2019-04-23 20:21:04

标签: xml coldfusion lucee

我从客户那里得到了一个类似以下的架构。我将其缩短并更改了一些名称。

<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'. Adob​​e ColdFusion和Lucee对此错误表示同意。 我已将xmlns属性添加到Data元素中。我将此xml发送到客户的系统,它被接受并成功处理。我不知道为什么ColdFusion会引发异常。我想这与名称空间有关。

0 个答案:

没有答案