Tengo una situación en la que un elemento en el archivo XML puede ser de dos tipos diferentes en el XSD.xsd mismo elemento, ¿diferentes tipos?
Lo que quiero hacer es primero validar el valor ingresado al tipo más estricto (si es una persona que rellene el formulario) y si eso no se lleva a cabo, validarlo al tipo estricto menor (si es una organización que completa el formulario); de lo contrario, deje que la validación falle si no se valida en absoluto.
Así que esto es básicamente:
<xsd:complexType name="ForminfoType"> `
<xsd:sequence>
<xsd:element name="formname" type="xsd:string" />
<xsd:element name="timestamp" type="xsd:dateTime" />
<xsd:element name="sender" type="PersonType" minOccurs="0" />
<xsd:element name="receiver" type="OrganizationType" minOccurs="0" />
<xsd:element name="signature" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
Lo que el PersonType declara es básicamente un número de 12 dígitos construido de acuerdo a un patrón específico. Lo que el tipo de organización declara es básicamente un número de 10 dígitos.
Así que lo que lógicamente me gustaría hacer es poner esto:
<xsd:element name="sender" type="OrganizationType" minOccurs="0" />
en la secuencia, pero no se puede tener dos elementos con el mismo nombre y diferentes tipos. Entonces creo que debo resolverlo de otra manera.
Lo que he encontrado fue la siguiente: http://xsd.stylusstudio.com/2007Oct/post05003.htm
que es casi lo que yo quiero hacer, pero no estoy seguro de que es posible. ¿Alguien tiene más ideas sobre cómo resolver esto?
Gracias de antemano.
Usted no desea utilizar los acentos abiertos para múltiples líneas de código. Simplemente seleccione las líneas y use Control-K. –
@Arizon: para formatear el código correctamente, resáltelo y luego haga clic en el botón con los ceros y unos (01010 0101010) en la barra de herramientas sobre el editor. –