2012-03-28 21 views
1

これはどのように実行可能かわかりませんが、私はXSDのデータ型で作業していますが、私がしようとしていることの1つは、姓のハイフン。したがって、SmithFrySafran-Foerと一致するはずです。また、チェックしている文字列の長さを100(または101)文字以下に制限したいと思います。私の正規表現もともとは:RegEx/XSDの長い文字列の中の1文字を一致させる

<xsd:pattern value="[a-zA-Z ]{0,100}"/> 

今、私は私がこれを破る何かをすると、任意のようないずれかの側に50文字許可することができます知っている:

<xsd:pattern value="[a-zA-Z ]{0,50}(\-)?[a-zA-Z ]{0,50}"/> 

をしかし、それは無様ようです。線に沿って何かをする方法はあります:

<xsd:pattern value="[a-zA-Z (\-)?]{0,100}"/> 

私が探しているもののために尋ねるのもう一つの方法は、その中にわずか1ハイフンで0と100長い間の文字列にマッチ」です'

ありがとうございます!

+1

傷害を追加するには、 'が失敗するヒフスenはレコードの文字51にあります。 –

答えて

2

これは'Match a string of characters between 0 and 100 long with no more than 1 hyphen in it'でスイングプラスいくつかの追加の制約:

  • は空白
  • 開始またはハイフン

で終わることができないため、私はあなたが持つことができるとは思わないが可能XSD正規表現によってサポートされている構文を考慮したパターンで行われた最大長。ただし、maxLengthファセットと組み合わせるのは簡単です。

これは、XSDである。等、パターンが空白のみで囲まれたハイフンを禁止するさらに洗練することができ

<?xml version="1.0" encoding="utf-8" ?> 
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)--> 
<xsd:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="last-name"> 
     <xsd:simpleType> 
      <xsd:restriction base="xsd:string"> 
       <xsd:maxLength value="100"/> 
       <xsd:pattern value="[a-zA-Z ]+\-?[a-zA-Z ]+"/> 
      </xsd:restriction> 
     </xsd:simpleType> 
    </xsd:element> 
</xsd:schema> 

有効なXML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) --> 
<last-name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/XMLSchema.xsd">last - name</last-name> 

無効なXML(あまりにも多くのハイフン)とメッセージ:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) --> 
<last-name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/XMLSchema.xsd">l-ast - name</last-name> 

検証エラー:

Error occurred while loading [], line 3 position 121 The 'http://tempuri.org/XMLSchema.xsd:last-name' element is invalid - The value 'l-ast - name' is invalid according to its datatype 'String' - The Pattern constraint failed.

無効なXML(maxよりも長く、テストのために私が使ってきたのmaxLength = 14)とのメッセージ:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) --> 
<last-name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/XMLSchema.xsd">last - name that is longer</last-name> 

検証エラー:

Error occurred while loading [], line 3 position 135 The 'http://tempuri.org/XMLSchema.xsd:last-name' element is invalid - The value 'last - name that is longer' is invalid according to its datatype 'String' - The actual length is greater than the MaxLength value.

関連する問題