私は単純なxmlファイルを持っています。そのファイルの要素を次のように定義しました...
<xs:element name="Comments" >
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4000" />
</xs:restriction>
</xs:simpleType>
</xs:element>
そのスキーマに一致すると思われる 2 つの Xml ファイルを作成します。1 つは CR/LF 行末 (Windows) を使用し、もう 1 つは LF 行末 (Unix) を使用します。
Unix ファイルの場合、Comments 値の長さは 4000 バイトです。Windows ファイルの対応する長さは、余分な CR バイトがあるため、当然のことながら 4000 バイトを超えています。
Xml メモ帳で Xml ファイルを検証すると、両方のファイルが有効です。CR/LF は、Xml 仕様2.11 の行末処理に従って、単一の LF に自動的に変換されることになっているため、期待どおりです。
Xml タスクを介してファイルをロードすると、有効な Unix ファイルのみが表示され、Windows バージョンは 4000 文字を超えると表示されます。
Xml 仕様に従って動作するように Xml タスクを構成できますか? または、CR/LF 行末を自分で変換してから再検証する必要がありますか?