1

次のように定義された XSD 要素があります。

<xsd:simpleType name="string1500">
    <xsd:restriction base="xsd:string">
        <xsd:maxLength value="1500" />
    </xsd:restriction>
</xsd:simpleType>

この要素は、次の方法で別の XSD で参照されます。

<xsd:element minOccurs="0" name="Description" type="bons3:string1500" />

( bons3は、両方の XSD で同じ名前空間を参照します。)

長さ 2000 文字の文字列が XSLT の [説明] フィールドに渡されると、1500 文字の制限が設定されていても、2000 文字すべてが保持されます。制限を間違って設定していますか、またはこのフィールドの最大長が 1500 文字であることを XSD で確認する別の方法はありますか?

ありがとう。

4

3 に答える 3

1

XSDはXSLTの動作に影響を与えません。XSLTの特定の値の長さを制限したい場合は、次を使用できます。

substring(Description, 1, 1500)

あなたがそれを参照するとき。

于 2013-01-08T16:20:31.420 に答える
1

XSLT と XSD は 2 つの異なるものです。XSLT 1.0 は、XSD やその他の XML スキーマ言語を気にしません。XSLT 2.0 では、XSD 対応の拡張機能が導入されました。これには適切な XSLT プロセッサを見つける必要があり、XML の処理が停止する可能性があります。ただし、自動的に魔法のように有効になるわけではありません。

于 2013-01-08T16:22:32.097 に答える
0

Saxon-EE などのスキーマ対応 XSLT プロセッサを使用している場合は、次のように記述できます。

<Description xsl:validation="strict">
  ...
</Description>

これにより、要素のコンテンツが、スキーマ内の Description 要素宣言の宣言された型に対して有効であることが保証されます。(スキーマは、xsl:import-schema 宣言を使用してスタイルシートにインポートする必要があります)。

于 2013-01-08T22:15:47.610 に答える