Tengo un esquema XML (XSD) que define un elemento como obligatorio (llámalo padre); este padre tiene, digamos, cinco elementos secundarios, que pueden ser opcionales, PERO POR LO MENOS debe haber un elemento secundario.Esquema XML (XSD): cómo especificar que el elemento primario contenga al menos un elemento secundario?
¿Cómo puedo especificar esto en el xsd?
Para aclarar: Los niños son elementos diferentes y opcionales. Por ejemplo.
<Parent>
<Child1>contents are different to other siblings and arbitrary</Child1>
<Child2>can be text, a simple element, or another complex element</Child2>
<Child3>etc.. etc</Child3>
</Parent>
<xs:complexType name="Parent">
<xs:sequence>
<xs:element minOccurs="0" name="Child1" type="xs:string"/>
<xs:element minOccurs="0" name="Child2" />
<xs:element minOccurs="0" name="Child3" />
</xs:sequence>
</xs:complexType>
A pesar de que cada niño es opcional, el padre tiene que tener al menos un hijo.
Después de revisar las respuestas (y mucha Google), parece que no hay una construcción fácil en xsd para especificar esto; Más problemas de los que vale, he optado por permitir que el software de validación aplique reglas adicionales (como por ejemplo, debe haber al menos un hijo). – joedotnot