Запросы xmlParse не могут найти объявление элемента после предоставления пространства имен

#xml #coldfusion #lucee

#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'. Adobe ColdFusion и Lucee согласны с этой ошибкой.
Я добавил xmlns атрибут к Data элементу. Я отправляю этот XML в систему клиента, и он принимается и успешно обрабатывается. Интересно, почему ColdFusion выдает исключение. Я предполагаю, что это связано с пространствами имен.

Комментарии:

1. Какая-то конкретная версия ColdFusion?

2. Я не знаю ColdFusion, но комбинация XSD / XML кажется мне допустимой, так что это либо ограничение используемых вами инструментов, либо вы неправильно запускаете процесс проверки.

3. Я пробовал ACF 11 и Lucee 5

4. FWIW, такое же поведение в CF2016.