Ejercicio de XSD - Letras admitidas
En el siguiente ejemplo se define un elemento llamado "letras" con la restricción de que puede tomar por valor cero o más (*) letras minúsculas de la "a" a la "z":
<xs:element name="letras">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Nota: los paréntesis de la expresión regular se pueden omitir, escribiendo simplemente: [a-z]*
Realizar los cambios necesarios en el código del ejemplo anterior para que "letras" pueda tomar por valor uno o más pares (+) de letras, y cada par de letras deberá estar formado por una letra mayúscula seguida de otra minúscula. Por ejemplo, "HoLa" sería admitido, pero no lo sería "Hola", "HOLa", "hola", etc.
Solución:
<xs:element name="letras">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([A-Z][a-z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Fíjese que, ahora, los paréntesis de la expresión regular ([A-Z][a-z])+ no se pueden omitir.