1

これは私の前の質問への続きの質問です。

いくつかの異なるサードパーティから提供された 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 を実行しています。

4

1 に答える 1

1

アノテーションを追加する単純なXSLT変換を定義し、サードパーティスキーマからOracleスキーマを生成する必要があるときはいつでもそれを実行します。

于 2011-06-17T15:54:36.030 に答える