2017-02-02 3 views
0
で定義されたヌルと特殊文字である

私のXSDXSDベースは、パターン

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 
    <xs:element name="AttNode"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="AttNodeChild"/> 
     </xs:sequence> 
     <xs:attributeGroup ref="AttNodeGroup"/> 
    </xs:complexType> 
    </xs:element> 
    <xs:attributeGroup name="AttNodeGroup"> 
    <xs:attribute ref="att" use="required"/> 
    </xs:attributeGroup> 
    <xs:attribute name="att" type="patternAtt" /> 
    <xs:simpleType name="patternAtt"> 
    <xs:restriction base="xs:normalizedString"> 
     <xs:pattern value="(|[TT]|YY|UU)(,(|[TT]|YY|UU))"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 

XSD検証が、属性値にするときのパターンの下に正常に動作している以下のが、私は文句を言わないいけないヌルとして属性値として

<AttNode> 
<AttNodeChild att="YY,UU"/> 
</AttNode> 

私はあなたの提案

失敗の検証を投稿してください、パターン内の特殊文字でヌルチェックし、文字列の値を与えることを試みたが失敗した

ケース01:

<AttNode> 
    <AttNodeChild att="[TT],UU"/> 
    </AttNode> 

ケース02:

<AttNode> 
<AttNodeChild att=""/> 
     </AttNode> 

答えて

0

あなたが(彼らは特殊文字です)\[\]に正規表現で[]をエスケープすることにより検証するケース01を得ることができます。

最後に閉じ括弧の後に?を追加することで、ケース02を確認して空の文字列を受け入れることができます。

関連する問題