これは私の前の質問への続きの質問です。
いくつかの異なるサードパーティから提供された XML ファイルと XML スキーマがあります。不可解な理由により、Oracle では、タイムゾーン情報で正しく検証できるようにOracle 固有の注釈が必要です。xs:dateTime
Googleとの長い議論の後、 XML Schema redefineを使用することで、Oracle の必須アノテーションを非侵入的に (つまり、元の XML スキーマを変更せずに) 追加できることがわかりました。
サードパーティが提供する XML Schema は、概念的には次のようになっています。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="ISODateTime">
<xs:restriction base="xs:dateTime"/>
</xs:simpleType>
</xs:schema>
そして、再定義を使用して、この方法で注釈を取り込むことができます。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb">
<xs:redefine schemaLocation="standard-schema.xsd">
<xs:simpleType name="ISODateTime">
<xs:restriction base="xs:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE"/>
</xs:simpleType>
</xs:redefine>
</xs:schema>
残念ながら、Oracle のドキュメントによると、再定義は、Oracle XML データベースでサポートされていない唯一の XML スキーマ機能です。
XML スキーマのサポート
[...] Oracle XML DB は、XML Schema Recommendation で定義されているすべての構造体をサポートしていますが、
redefines
.
(そして、私の実験はこの声明を支持しています。)
元の XML スキーマを変更せずに、必要なxdb:SQLType
注釈を追加するために必要なオプションはありますか?
Oracle Database 11g リリース 11.2.0.4.0 を実行しています。