2

xml スキーマのデータ型 --> date では、デフォルトで yyyy-mm-dd 形式の日付を使用できます。

代わりに yyyy/mm/dd 形式のスタイルを受け入れるように変更するにはどうすればよいでしょうか?

4

3 に答える 3

5

日付タイプを特定の形式に変更することはできませんが、文字列として取得して、必要な特定の形式を選択することはできます。

日付 MM/DD/YYYY の形式について。コード スニペットを以下に示します。

<xs:element name="StartDate">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}"></xs:pattern>
            <xs:length value="10"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>
于 2013-11-25T12:09:54.820 に答える
4

標準のxs:date型を取得して、標準の形式以外の形式を受け入れることはできません。できることは、パターン制約を使用して文字列データ型を定義することです。ただし、日付のセマンティクスはありません。たとえば、1999/02/29を受け入れます。

SaxonのXSDプロセッサには、実験的な拡張機能であるsaxon:preprocessがあります。これにより、データ型の字句表現を変更できます。もちろん、スキーマが相互運用可能であることを望んでいるため、これを使用する人は多くありません。しかし、それはあなたが望むことを正確に行うので、私はそれについて言及しようと思いました。

見過ごされがちで、おそらくより実用的なもう1つの解決策は、検証ステップを実行する前に、処理パイプラインが変換ステップを実行することです。このアプローチは、XMLスキーマの制限の多くを克服するために使用できますが、広く知られているわけではありません。

于 2012-11-16T09:03:14.293 に答える
0

melwil によって投稿されたこの正規表現を確認できます。それは私のために働いた!

((0[1-9]|[1-2]\d|3[01])-(0[13578]|1[02])|([0-2]\d|30)-(0[469]|11)|(0[1-9]|1\d|2[0-8])-02)-\d{4}|(0[1-9]|[12]\d)-02-(([02468][048]|[13579][26])00|(\d{2}([02468][48]|[2468][048]|[13579][26])))
于 2016-09-18T23:05:44.583 に答える