Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2008, 06:26
diablo_jr
 
Fecha de Ingreso: noviembre-2007
Mensajes: 81
Antigüedad: 16 años, 4 meses
Puntos: 0
OpenCms 6 - Validación de esquemas xsd

buenas a todos, tengo un problemita con la validación de campos de un esquema en OpenCms.

El caso es que he creado un nuevo recurso llamado "enlace" tal y como se muestra a continuación:

<xsd:complexType name="OpenCmsEnlace">
<xsd:sequence>
<xsd:element name="Texto" type="OpenCmsString" minOccurs="0" maxOccurs="1"/>
<xsd:element name="EnlaceExterno" type="OpenCmsEnlaceExterno" minOccurs="0" maxOccurs="1"/>
<xsd:element name="EnlaceInterno" type="OpenCmsEnlaceInterno" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="language" type="OpenCmsLocale" use="optional" />
</xsd:complexType>

A esto le quiero añadir unas reglas de validación para que no me permita guardar el recurso si EnlaceExterno y EnlaceInterno se encuentran los dos activos, ya que esto provocaría un conflico a la hora de asignar el enlace al texto. Las reglas son las siguientes:

<xsd:annotation>
<xsd:appinfo>
<validationrules>
<rule element="EnlaceExterno" regex="!(EnlaceInterno==null)" message="No puedes asignar dos direcciones a un mismo enlace." />
<rule element="EnlaceInterno" regex="!(EnlaceExterno==null)" message="No puedes asignar dos direcciones a un mismo enlace." />
</validationrules>
</xsd:appinfo>
</xsd:annotation>

El caso es que !(EnlaceInterno==null) y !(EnlaceExterno==null) no son expresiones regulares validas pero no se de que forma ponerlo que lance el error cuando intente activar alguno de los enlaces cuando el otro ya esta activo.

¿Quién puede ayudarme? Gracias de antemano