2011-06-17 14 views
1

これは私の継続する問題ですprevious questionです。XMLスキーマタイプを再定義せずに再定義する方法は?

XMLファイルとXMLスキーマがいくつかの異なるサードパーティによって提供されています。いくつかの不思議な理由により、Oracle specific annotationは、xs:dateTimeのタイムゾーン情報を正しく検証できる必要があります。

Googleという長い議論の末、私は、XML Schema redefineを使用して、非必須(すなわち元のXMLスキーマを変更することなく)にOracle必須アノテーションを追加できることを発見しました。

第三者によって提供XMLスキーマは次のようにconseptuallyです:

<?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 documentation再定義によれば、単一でありますOracle XMLデータベースでサポートされていないXML Schema機能:

XMLスキーマのサポート

[...] Oracle XML DBはredefines以外のXML Schema勧告で定義された構築物のすべて、をサポートしています。

(そして、私の実験では、このステートメントをサポートしています。)

どのようなオプションがあれば、私は元のXMLスキーマを変更することなく、必要なxdb:SQLType注釈を追加する必要がありますか?

Oracle Database 11gリリース11.2.0.4.0を実行しています。

答えて

1

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

+0

もちろんです!なぜ私は自分自身を理解していない - 私はばかな。過去に私はかなり多くのXSLTを行ってきましたが(Oracleではなく)、それで問題はありません。 – user272735