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