i $
nie są używane do wyrażeń regularnych w XSD - zawsze pasuje od początku i końca, tak jakby były tam. Dlatego właśnie je pominąć:
[a-zA-Z\-]{0,64}\.[a-zA-Z\-]{0,64}
i uciec z .
(lub użyć klasę postaci jak NullUserException powiedział).
Z XML Schema part 2: datatypes specyfikacji:
przeciwieństwie do niektórych popularnych języków wyrażeń regularnych (w tym te określone przez Perl i standardowych narzędzi Unix), regularne język wyrażenie zdefiniowane tu niejawnie zakotwicza wszystkich wyrażeń regularnych na głowę i ogon, Najczęstszym zastosowaniem wyrażeń regularnych w · wzorzec · jest dopasowanie do wszystkich literałów.
Ich przykładem jest użycie A.*Z
nie ^A.*Z$
Ponieważ ^
i $
nie są znaki specjalne, to będzie po prostu spróbować dopasować je w dokumencie XML.
Mówi się, że unix to zbiór niekompatybilnych składni wyrażeń regularnych, więc nie stosując się do standardu unix, podążają za tradycją unix.
Można przetestować ten przykład na: http://www.utilities-online.info/xsdvalidation/ (przykład z testów NullUserException)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="eg" type="myString_Type"/>
<xs:simpleType name="myString_Type">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z\-]{0,64}\.[a-zA-Z\-]{0,64}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
<eg>something.something-else</eg>
Chyba masz na myśli: [ '^ [a-zA-Z -] {0,64} [ .] [a-zA-Z-] {0,64} $ '] (http://regex101.com/r/yQ3jE7) – NullUserException
Tak, masz rację i bardzo szybko! Dzięki! –