¿Cómo se hace en xsd para validar que un nodo no esté vacío?
por ejemplo el siguiente xml no es válido ya que el nodo <pie> no tiene valor o nodos hijos.
Código XML:
Ver original
<?xml version="1.0" encoding="UTF-8"?> <documentoXML> <cabezera> <numero>NUMERO</numero> </cabezera> <detalle> <comentarios> <comentario>COMENTARIO_1</comentario> <comentario>COMENTARIO_2</comentario> </comentarios> </detalle> <pie/> </documentoXML>
El xsd lo tengo así:
Código XML:
Ver original
<?xml version="1.0" encoding="UTF-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="documentoXML"> <xs:all> <xs:element type="cabezeraType" name="cabezera" minOccurs="0" maxOccurs="1"/> <xs:element type="detalleType" name="detalle" minOccurs="0" maxOccurs="1"/> <xs:element type="pieType" name="pie" minOccurs="0" maxOccurs="1"/> </xs:all> </xs:complexType> ... <xs:complexType name="pieType"> <xs:all> <xs:element type="xs:dateTime" name="fecha" minOccurs="0" maxOccurs="1"/> <xs:element type="xs:string" name="direccion" minOccurs="0" maxOccurs="1"/> </xs:all> </xs:complexType>
En el fondo intento validar que un nodo tenga al menos un nodo hijo o tenga un valor y que cada nodo (padre o hijo) solo sea declarado una vez.
Gracias.