Valores por defecto del esquema XML minOccurs / maxOccurs


Me pregunto cómo maneja la especificación XML Schema estos casos:

<xsd:element minOccurs="1" name="asdf"/>

No maxOccurs dado -> Es esto la cardinalidad [1..1]?

<xsd:element minOccurs="5" maxOccurs="2" name="asdf"/>

Supongo que esto es simplemente inválido?

<xsd:element maxOccurs="2" name="asdf"/>

Es esta la cardinalidad [0..2] o [1..2]?

¿Hay una definición "oficial" sobre cómo la especificación XML Schema maneja estos casos?

 184
Author: Chris, 2011-01-27

2 answers

Los valores por defecto para minOccurs y maxOccurs son 1. Así:

<xsd:element minOccurs="1" name="asdf"/>

Cardinalidad es [1-1] Nota: si especifica solo atributo minOccurs, no puede ser mayor que 1, porque el valor predeterminado para maxOccurs es 1.

<xsd:element minOccurs="5" maxOccurs="2" name="asdf"/>

No válido

<xsd:element maxOccurs="2" name="asdf"/>

Cardinalidad es [1-2] Nota: si especifica solo atributo maxOccurs, no puede ser menor que 1, porque el valor predeterminado para minOccurs es 1.

<xsd:element minOccurs="0" maxOccurs="0"/>

Es una combinación válida que hace que el elemento prohibir.

Para más información ver http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints

 289
Author: jasso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-09 13:37:12

Respuesta nueva y ampliada a una vieja pregunta común...

Valores por defecto

  • Restricciones de ocurrencia minOccurs y maxOccurs por defecto a 1.

Casos comunes Explicados

<xsd:element name="A"/>

Medio A es se requiere y debe aparecer exactamente una vez.


<xsd:element name="A" minOccurs="0"/>

Medio A es opcional y puede aparecer en la mayoría de los una vez.


 <xsd:element name="A" maxOccurs="unbounded"/>

Medio A es se requiere y puede repetir una número ilimitado de veces.


 <xsd:element name="A" minOccurs="0" maxOccurs="unbounded"/>

Medio A es opcional y puede repetir una número ilimitado de veces.


Véase también

  • W3C XML Schema Parte 0: Primer

    En general, se requiere que aparezca un elemento cuando el valor de minOccurs es 1 o más. El número máximo de veces que un elemento puede aparecen es determinado por el valor de un atributo maxOccurs en su declaración. Este valor puede ser un entero positivo como 41, o el término ilimitado para indicar que no hay un número máximo de ocurrencias. El valor predeterminado para los atributos minOccurs y maxOccurs is 1. Por lo tanto, cuando un elemento como comentario se declara sin un Atributo maxOccurs, el elemento no puede ocurrir más de una vez. Estar seguro que si especifica un valor solo para el atributo minOccurs, es menor o igual al valor predeterminado de maxOccurs, es decir, es 0 o 1. Del mismo modo, si especifica un valor solo para el atributo maxOccurs, debe ser mayor o igual al valor predeterminado de minOccurs, es decir, 1 o más. Si se omiten ambos atributos, el elemento debe aparece exactamente una vez.

  • W3C XML Schema Parte 1: Estructuras Segunda Edición

    <element
      maxOccurs = (nonNegativeInteger | unbounded)  : 1
      minOccurs = nonNegativeInteger : 1
      >
    
    </element>
    
 44
Author: kjhughes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-19 20:29:37