タイプ xsd:token の有効な XML 要素のコンテンツを制限する XSD を作成して、検証時に xsd:string でラップされた同じコンテンツと区別できないようにします。
つまり、キャリッジ リターン (#xD)、ライン フィード (#xA)、タブ (#x9) 文字を含まず、スペース (#x20) 文字で開始または終了し、2 つ以上の隣接するシーケンスを含まないスペース文字。
使用する正規表現は次のとおりだと思います。
\S+( \S+)*
(一部の非空白、省略可能 [1 つ以上の非空白の隣の単一スペース]、常に非空白で閉じることを含む)
これはさまざまな正規表現テスト ツールで動作しますが、oXygen XML エディターを使用してチェックできないようです。文字列内のダブル スペース、前後のスペース、タブ、および改行により、XML インスタンスは引き続き検証に合格できるようです。
XSD の実装は次のとおりです。
<xs:simpleType name="Tokenized500Type">
<xs:restriction base="xs:token">
<xs:maxLength value="500"/>
<xs:minLength value="1"/>
<xs:pattern value="\S+( \S+)*"/>
</xs:restriction>
</xs:simpleType>
何か特徴あるのかな
- XML
また
- XSD
また
- oXygen XML エディター
この作業を妨げますか?