2008-12-11 23 views
13

XML şema (.xsd) dosyamda büyük/küçük harf duyarsız bir dize numaralandırma türüne ihtiyacım var. Aşağıdakileri yaparak büyük/küçük harf duyarsız olabilirim. XML Şema Vaka Basit Tip Dize için Duyarsız Sayım

<xs:simpleType name="setDigitalPointType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="[Oo][Nn]" /> 
     <xs:pattern value="[Oo][Ff][Ff]" /> 
    </xs:restriction> 
</xs:simpleType> 

tek sorun

hiçbir numaralandırma değerleri elde edilmesi. XML'imi yazmak için Visual Studio'yu kullanırken güzel bir intellesense alamayacağım. Aşağıdaki sayılar bana sayılar verecektir, ancak büyük/küçük harfe duyarlıdır.

<xs:simpleType name="setDigitalPointType"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="on" /> 
     <xs:enumeration value="off" /> 
    </xs:restriction> 
</xs:simpleType> 

Bu bana numaralandırma verecek ama şimdiye kadar "On" değerini alırsanız, "AÇIK" veya "oN" Bu doğrulama başarısız olur.

"Açık", "kapalı" sayımını istiyorum ve büyük/küçük harf duyarlı olmayan sürümlerin girilmesine izin veriyorum.

cevap

10

IBM developerWorks otomatik bir biçimde numaralandırma alternatiflerin tam set yapımını gerçekleştirmek için XSLT nasıl kullanılacağı hakkında an article sahiptir. Davaya duyarsız sayımların eksikliğine bir çözüm olarak sunulmuştur.

0

Eh, sadece desenleri gibi tüm permütasyon liste olabilir :)

+0

Yapabilirim ama bu "bildirim" gibi uzun numaralandırma değerleri için zarif değil ve hala numaralamamı alamıyorum. Numaralandırma benim için çok önemli. :) –

15

hala Visual Studio 2010 IntelliSense elde ederken hem küçük harf duyarsız doğrulama tutmak istiyorsanız, bir birlik kullanabilirsiniz: o gerçeği patlatır çünkü

<xs:simpleType name="setDigitalPointType"> 
    <xs:union> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:enumeration value="on" /> 
       <xs:enumeration value="off" /> 
      </xs:restriction> 
     </xs:simpleType> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:pattern value="[Oo][Nn]" /> 
       <xs:pattern value="[Oo][Ff][Ff]" /> 
      </xs:restriction> 
     </xs:simpleType> 
    </xs:union> 
</xs:simpleType> 

Bu çalıştığını Visual Studio 2010 sadece Intellisense veriyi oluşturduğunda bir birleşimde ilk basit türü işler. Ancak bir belgeyi doğruladığında, her ikisini de işler, yani "Açık" ın, sayım değerleri listesinde olmasa bile geçerli olduğu belirlenir.

İlgili konular