Estoy definiendo una serie de ficheros XML a través de XSD (XML Schemas). En uno de los campos quiero poner las siguientes restricciones:
- Tipo string
- Longitud mínima
- Longitud máxima
- Sólo admitir ciertos caracteres
Este ejemplo me ha funcionado perfectamente:
<xs:element name="codigo">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]*"/>
<xs:minLength value="1"/>
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Sin embargo, ahora quiero aplicar las restricciones que indican en esta página para campos alfanuméricos: Página oficial de la AEAT.
He comprobado que el siguiente patrón de Regular Expressions funciona adecuadamente:
[A-Z0-9 ÑÇ´ÁÉÍÓÚ',&:;_\-\.]*
Sin embargo, no puedo poner ese patrón dentro del XSD porque debido a los caracteres que contiene da el error de que el XSD es imposible de parsear.
Código que falla:
<xs:element name="nombre">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z0-9 ÑÇ´ÁÉÍÓÚ',&:;_\-\.]*"/>
<xs:minLength value="1"/>
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Estoy buscando una manera de poner ese patrón u otro que tenga un comportamiento similar.