Hola
¿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.