2010-04-10 22 views
5

Estoy análisis de un archivo XML con un XSD que contiene algunos patrones de expresiones regulares se utilizan para el control de los datos de entrada, pero sólo esta expresión regular genera un error, incluso si se pasa al plugin de Eclipse XSD:Validación XML utilizando XSD con el patrón de expresión regular

InvalidRegex: Pattern value 
    '(((com|org)\.)+(\b[a-z]+[.]{1}\b)+)?[A-Z]{1}[A-Za-z]+' 
    is not a valid regular expression. The reported error was: 
    'This expression is not supported in the current option setting.'. 

Entonces, incluso si el problema es causado por el \ b límite que puedo eliminar de forma segura, con el validador de SAX ¿dónde puedo encontrar la "configuración de la opción actual" fatal?

+0

¿Dónde está su XML para que podamos ver el contexto en el que esa restricción está generando un error? –

+0

Tenga en cuenta que '{1}' se puede omitir. –

+1

Tnx para fijar el reduntant {1}. Actualmente ya no es un problema porque lo solucioné cuando noté que eliminar el "\ b ... \ b" funciona sin errores. Pero ahora tengo curiosidad por saber dónde puedo establecer la mencionada "configuración de opciones", podría ser útil saber dónde manipular estas configuraciones ocultas. –

Respuesta

2

\b no es compatible con el XML Schema sabor regex como specified por el W3C. El mensaje de error implica que puede usarlo de todos modos al cambiar una configuración, pero luego estaría utilizando una característica no estándar, lo que frustraría el propósito de usar XML.

No estoy seguro de que eso sea exactamente lo que significa el mensaje de error, pero hubiera sido más útil si solo la expresión regular no fuera válida. Hazte un favor y olvídate de usar \b en tu XSD. Y revise el resto del sitio regular-expressions.info si aún no lo ha hecho: es un gran recurso.

Cuestiones relacionadas