#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.