Опитвам се да вмъкна документ чрез xdmp:document-insert()
, преди това да бъде извикано, валидирам документа спрямо съответната му схема чрез validate strict { $xml }
и използвам този изход в повикването за вмъкване. Изходът от повикването validate
обаче не включва стойността по подразбиране, посочена в схемата.
Опростена схема:
<xs:schema>
<xs:complexType name="fields-type" abstract="false" mixed="false">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element default="Faulkner" maxOccurs="1" minOccurs="0" name="an_author" nillable="false" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="document-type" abstract="false" mixed="false">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="fields" type="fields-type" minOccurs="1" maxOccurs="1" nillable="false"/>
</xs:sequence>
</xs:complexType>
<xs:element name="document" type="document-type" abstract="false" nillable="false"/>
</xs:schema>
Документът:
<document>
<fields>
<an_author/>
</fields>
</document>
След извикване на validate strict { $xml }
изходният документ е същият като по-горе, без добавена стойност по подразбиране към елемента <an_author>
. Забележка: Опитах също да използвам атрибута fixed
на мястото на default
в схемата и получавам същия резултат. xdmp:validate($xml, "strict")
също не връща никакви грешки.
Редактиране: Според спецификацията за валидиране на XQuery тук изходът трябва да има стойността по подразбиране посочени.