2017-06-09 5 views
1

任意の数:XMLの必須フィールドの検証と私はサクソン人と経験していないのですが、次の問題の解決策を決定するために使命を帯びてきた未知のオプションフィールド

現在、私のクライアントは、着信XML文書を検証するためにSaxonicaを使用しています。彼らはオプションのフィールドに問題があります。現在のところ、バリデーションには多くのオプションフィールドがあり、かなり変更されています。これらのオプションフィールドを許可するためにスキーマを更新することは、本番ファイルを更新するために他の部門を通過する必要があるため、非常に困難です。

サクソニカは、特定の数の必須フィールドと任意の数のオプションフィールドに対してXMLドキュメントを検証する機能を備えています。つまり、必要なフィールドが存在し、残りのオプションフィールドがスキーマに定義されていない場合、検証を通過させることができます。それらは、スキーマを素早く更新することはできません。だから、もし彼らがただ必要なフィールドをチェックし、それ以降のすべてをやり遂げることができれば。

これが可能であれば、誰かがこれをどのように実装できるのか正しい方向に向けることができます。私はドキュメンテーションを見ていますが、私が探しているものは実際には見つかりませんでした。

私はこれに関する助けに感謝します。

+1

'xsd:any' https://www.w3.org/TR/xmlschema11-1/#Wildcardsがありますが、それが役立つかどうかを私たちに知らせるためには、もっと具体的にする必要があります。 –

+0

@MartinHonnenは助けてくれてありがとう。私がしようとしているのは、検証スキーマにはないオプションセクションを持つXMLドキュメントを検証することです。私は検証スキーマに必須のフィールドを持っていますが、オプションフィールドは、必要なフィールドと任意のオプションフィールドを持つXMLドキュメントを受け入れるように検証するような速い速度で変化しています。 –

+0

さて、 'xsd:任意の 'および/または' xsd:anyAttribute'を指定する必要があります。それが要素であるか属性であるかに関わらず、フィールドとは何かを確かめないでください。 –

答えて

0

正しく理解して、インスタンスとスキーマがあり、インスタンスがスキーマに準拠していないため、政治/プロセス上の理由でスキーマを変更したくない場合。ほとんどの人は、政治的な障害を直すべきだと言います。しかし、絶対に回避する必要がある場合は、インスタンスをスキーマに準拠するように変更することもできます。人々は、検証の後に変換を行うことが可能であることを忘れる傾向があります。 XSLTを使用して「オプションフィールド」を取り除き、スキーマ検証を使用して残っているものを検証します。

関連する問題