XML - статьи

Обработка определений типов документов


Хотя DTD не используются для определения структуры памяти хранения для XMLType, Oracle XML DB разрешает все DTD-определения и объекты, определенные или упомянутые во вставленном XML-документе. Это выполняется в процессе вставки XMLType, когда анализируются (parsed) все пришедшие XML-документы. В этом процессе разрешаются все объекты, включая внешние и внутренние, определенные в DTD. Это означает, что все объекты перемещаются вместе со своими реальными значениями и, следовательно, все первоначальные

(оригинальные) объектовые ссылки утрачиваются.

Если вы захотите оставить эти ссылки, вам следует сохранить XML в CLOB, вместо CLOB XMLType. Потом вы можете всякий раз создать временный XMLType из этого CLOB, когда вам понадобится разрешить все объекты и использовать контент XML.

Создание XML Schema-базируемых XMLTypes

Вы можете создавать XML Schema-базируемые XMLTypes, используя функции конструирования XMLType или XMLType.CreateXML() функцию. Однако, когда вы используете эти функции для создания XML Schema-базируемых XMLTypes, XML-документ должен содержать XML-атрибуты SchemaLocation. Иногда XML-документ не содержит таких атрибутов. Как же вы сможете создать XML Schema-базируемый XMLType без изменения оригинального XML-документа?

В Главе8 было показано, что можно использовать функцию XMLType.CreateSchemaBasedXML и специфицировать URL XML схемы, как показано ниже: INSERT INTO product(id, name, description) VALUES('xdk', 'XML Developer's Kit', XMLTYPE('<DESCRIPTION><KEYWORD>xdk</KEYWORD> is a set of standards-based utilities that helps to build <KEYWORD>XML</KEYWORD> applications. It contains XDK Java Components, XDK C Components and XDK C++ Components. </DESCRIPTION>').CreateSchemaBasedXML('http://xmlns.oracle.com/ xml/content.xsd'));

URL http://xmlns.oracle.com/xml/content.xsd является зарегистрированным URL XML схемы и будет использоваться для сохранения продуктового DESCRIPTION.



Содержание раздела