2017-06-07 16 views
2

私のXSDでは、頻繁に使用する制限があります。同じ制限がいくつかの場所で使用されており、更新時にそれを忘れる可能性があります。私は、ツールがあることを理解しています(検索/置換)が、これらの制限をグローバルに定義する方がいいと思います。このようにして、x-時間の代わりに1つの場所で変更するだけです。XSDにおける制限の定義と再利用

私が持っている余分な問題、XSD

<xs:schema> 
    <xs:complexType name="eventType"> 
     <xs:sequence> 
      <xs:element name="short_summary"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
         <xs:pattern value="([\p{L}\p{M}\p{N}\p{P}\p{Z}\p{S}\p{C}]+)?"/> 
        </xs:restriction> 
       </xs:simpleType> 
      </xs:element> 
      <xs:element name="long_summary"> 
       <xs:simpleType> 
        <xs:restriction base="xs:string"> 
         <xs:pattern value="([\p{L}\p{M}\p{N}\p{P}\p{Z}\p{S}\p{C}]+)?"/> 
        </xs:restriction> 
       </xs:simpleType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:schema> 
の(例えばlong_summary、short_summary、...)

セットアップ要素の名前は常に異なっており、それを変更する方法がないということです

基本的には、制限([\p{L}\p{M}\p{N}\p{P}\p{Z}\p{S}\p{C}]+)?を1回だけ定義し、short_summaryとlong_summaryに再利用したいと考えています。

アドバイスや指示がありがとうございます。その間に、私はさらに見ていくつもりです。私が答えを見つけたら、ここに入れておきます。

答えて

3

私の質問への答え:XSD

.... 
<xs:element name="short_summary" type="Text"/> 
<xs:element name="long_summary" type="Text"/> 
.... 
で使用

グローバル制限

<xs:simpleType name="Text"> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="([\p{L}\p{M}\p{N}\p{P}\p{Z}\p{S}\p{C}]+)?"/> 
     </xs:restriction> 
</xs:simpleType>