Я пытаюсь вставить документ через 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 здесь выходные данные должны иметь значение по умолчанию. указано.