Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2010, 15:20
Avatar de Mauri1
Mauri1
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 5 meses
Puntos: 0
XML Schema nodos no vacíos

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
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <documentoXML>
  3.     <cabezera>
  4.         <numero>NUMERO</numero>
  5.     </cabezera>
  6.     <detalle>
  7.         <comentarios>
  8.             <comentario>COMENTARIO_1</comentario>
  9.             <comentario>COMENTARIO_2</comentario>
  10.         </comentarios>
  11.     </detalle>
  12.     <pie/>
  13. </documentoXML>

El xsd lo tengo así:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3.     <xs:complexType name="documentoXML">
  4.         <xs:all>
  5.             <xs:element type="cabezeraType" name="cabezera" minOccurs="0" maxOccurs="1"/>
  6.             <xs:element type="detalleType" name="detalle" minOccurs="0" maxOccurs="1"/>
  7.             <xs:element type="pieType" name="pie" minOccurs="0" maxOccurs="1"/>
  8.         </xs:all>
  9.     </xs:complexType>
  10.     ...
  11.     <xs:complexType name="pieType">
  12.         <xs:all>
  13.             <xs:element type="xs:dateTime" name="fecha" minOccurs="0" maxOccurs="1"/>
  14.             <xs:element type="xs:string" name="direccion" minOccurs="0" maxOccurs="1"/>
  15.         </xs:all>
  16.     </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.