| Каталог | Индекс раздела |
| Назад | Оглавление | Вперед |
.-DOCUMENT-.
>>-XMLVALIDATE--(--+----------+--XML-выражение--+---------------------------------------+--)-><
'-| фраза-проверки-XML-в-соответствии-с |-'
фраза-проверки-XML-в-соответствии-с:
|--ACCORDING TO XMLSCHEMA--------------------------------------->
>--+-ID--зарегистрированное-имя-XML-schema-------------+---------------->
'-+-URI--XML-uri1---------+--+--------------------+-'
'-NO пространство имен--' '-LOCATION--XML-uri2-'
>--+-------------------------------------+-----------------------------|
'-| фраза-проверяемого-XML-элемента |-'
фраза-проверяемого-XML-элемента:
|--+----------------------+--ELEMENT--XML-имя-элемента---|
+-NAMESPACE--XML-uri3--+
'-NO NAMESPACE --------'
Схема - SYSIBM. Имя функции не может задаваться как квалифицированное имя.
Функция XMLVALIDATE возвращает копию входного XML-значения, дополненную информацией, полученной от проверки по XML-схеме, включая значения по умолчанию и аннотации типов.
DOCUMENT
Задает, что XML-значение результирующее для XML-выражения должно быть правильно форматирования XML-документ, соответствующим XML Version 1.0 (SQLSTATE 2200M).
XML-выражение
Выражение, возвращает значение типа данных XML. Если XML-выражение является host-переменной XML или явно или неявно типизированным маркером параметра, функция выполняет разбор для проверки правильности, и установка CURRENT IMPLICIT XMLPARSE OPTION не принимается во внимание.
фраза-проверки-XML-в-соответствии-с
Задает информацию, используемую при проверке правильности входного XML-значения.ACCORDING TO XMLSCHEMA
Показывает, что информация об XML-схеме для проверки правильности задана явным образом. Если эта фраза не включена, информация об XML-схеме должна быть обеспечена в содержимом значения XML-выражения.ID зарегистрированное-имя-XML-schema
Задает идентификатор SQL для XML-схемы, которая используется для проверки правильности. Имя, включая явный или неявный определитель схемы SQL, должно уникально идентифицировать существующую XML-схему в репозитории XML-схем на текущем сервере. Если не существует XML с таким именем в явно или не явно заданной схеме SQL, возвращается ошибка (SQLSTATE 42704).URI XML-uri1
Задает URI целевого пространства имен в XML-схеме, которая используется для проверки правильности. Значение XML-uri1 задает URI как непустую строковую константу. URI должен быть целевым пространством имен зарегистрированной XML-схемы (SQLSTATE 4274A) и, если не задана фраза LOCATION, он должен уникально идентифицировать зарегистрированную XML-схему (SQLSTATE 4274B).NO NAMESPACE
Задает, что XML-схема для проверки правильности не имеет целевого пространства имен. URI целевого пространство имен эквивалентно пустой символьной строке, которая не может быть задано как явный URI целевого пространства имен.LOCATION XML-uri2
Задает URI расположения XML-схемы для XML-схемы, которая используется для проверки правильности. Значение XML-uri2 задает URI как непустую строчную константу. URI расположения XML-схемы, комбинируемый с URI целевого пространства имен, должен идентифицировать зарегистрированную XML-схему (SQLSTATE 4274A), и должна быть зарегистрирована только одна такая XML-схема (SQLSTATE 4274B).
фраза-проверяемого-XML-элемента
Задает, что XML-значение в XML-выражении должно иметь заданное имя элемента как корневого элемента XML-документа.NAMESPACE XML-uri3 или NO NAMESPACE
Задает целевое пространство имен для элемента, правильность которого должна проверяться. Если фраза не задана, предполагается, что данный элемент находится в том же пространстве имен, что и целевое пространство зарегистрированной XML-схемы, используемой для проверки правильности.NAMESPACE XML-uri3
Задает URI пространства имен для элемента, правильность которого должна проверяться. Значение XML-uri3 задает URI как непустую строковую константу. Это может быть применяться, если зарегистрированная XML-схема, используемая для проверки правильности, имеет более одного пространства имен.NO NAMESPACE
Задает, что элемент правильность которого проверяется, не имеет целевого пространство имен. URI целевого пространство имен эквивалентно пустой символьной строке, которая не может быть задано как явный URI целевого пространства имен.ELEMENT xml-имя-элемента
Задает имя глобального элемента в XML-схеме, которое используется для проверки правильности. Заданный элемент, с явным или неявным пространством имен, должен соответствовать корневому элементу значения XML-выражения (SQLSTATE 22535 или 22536).
Тип данных результата - XML. Если значение XML-выражения может быть null, результат может быть null; если значение XML-выражения - null, результат имеет значение null.
Процесс проверки правильности XML выполняется на сериализованном XML-значение. Поскольку XMLVALIDATE вызывается с аргументом типа XML, это значение автоматически сериализуется перед проверкой правильности, за двумя следующими исключениями.
Если XML-значение было ранее проверено, информация аннотации типа от предыдущей проверки правильности процессом сериализации удаляется. Однако все значения по умолчанию и расширения сущностей от предыдущей проверки правильности остаются неизменными. Если проверка правильности успешна, все игнорируемые пробельные символы удаляются из результата.
Для проверки правильности документа, корневой элемент которого не имеет пространство имен, в корневом элементе должен быть представлен атрибут xsi:noNamespaceSchemaLocation.
Примечания:
Примеры:
INSERT INTO T1(XMLCOL) VALUES (XMLVALIDATE(?))
Предположим, что маркер входного параметра привязан к XML-значению, которое содержит информацию об XML-схеме.
<po:order
xmlns:po='http://my.world.com'
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://my.world.com/world.xsd" >
...
</po:order>
Далее, предположим, что XML-схема, которая связана с целевым пространством имен "http://my.world.com" и указывается schemaLocation "http://my.world.com/world.xsd" находится в репозитории XML-схем.
При таких предположениях будет выполнена проверка правильности и аннотирование типов входного XML-значения в соответствии с этой XML-схемой.
INSERT INTO T1(XMLCOL)
VALUES (
XMLVALIDATE(
? ACCORDING TO XMLSCHEMA ID PODOCS.WORLDPO
)
)
Предположим, что XML-схема, которая связана с SQL-именем FOO.WORLDPO находится в репозитории XML-схем, будет выполнена проверка правильности и аннотирование типов входного XML-значения в соответствии с этой XML-схемой.
INSERT INTO T1(XMLCOL)
VALUES (
XMLVALIDATE(
? ACCORDING TO XMLSCHEMA ID FOO.WORLDPO
пространство имен 'http://my.world.com/Mary'
ELEMENT "po"
)
)
Предположим, что XML-схема, которая связана с SQL-именем FOO.WORLDPO находится в репозитории XML-схем, XML-схема будет проверять правильность элемента "po", пространство имен которого - 'http://my.world.com/Mary'.
INSERT INTO T1(XMLCOL)
VALUES (
XMLVALIDATE(
? ACCORDING TO XMLSCHEMA URI 'http://my.world.com'
LOCATION 'http://my.world.com/world.xsd'
)
)
Предположим, что XML-схема, связанная с целевым пространством имен "http://my.world.com" и указанием schemaLocation "http://my.world.com/world.xsd" находится в репозитории XML-схем, будет выполнена проверка правильности и аннотирование типов входного XML-значения в соответствии с этой XML-схемой.
| Назад | Оглавление | Вперед |
| Каталог | Индекс раздела |