2008-10-03 53 views
6

me he encontrado con un esquema XML con la siguiente definición:de esquemas XML XSD totalDigits vs maxInclusive

<xs:simpleType name="ClassRankType"> 
    <xs:restriction base="xs:integer"> 
     <xs:totalDigits value="4"/> 
     <xs:minInclusive value="1"/> 
     <xs:maxInclusive value="9999"/> 
    </xs:restriction> 
</xs:simpleType> 

Sin embargo, me parece que totalDigits es redundante. Soy algo nuevo en XML Schema, y ​​quiero asegurarme de que no me falta algo.

¿Cuál es el comportamiento real de totalDigits frente a maxInclusive?

Can totalDigits siempre se representa con una combinación de minInclusive y MaxInclusive?

¿Cómo afecta totalDigits a los números negativos?

Respuesta

6

puede totalDigits siempre se representan con una combinación de minInclusive y MaxInclusive?

En este caso, sí. Como se trata de un número entero, el valor debe ser un número entero, por lo que tiene un conjunto finito de valores entre minInclusive y maxInclusive. Si tuviera valores decimales, totalDigits le diría cuántos números en total podría tener ese valor.

¿Cómo afecta el totalDigits a los números negativos?

Es el número total de dígitos permitidos en el número, y no se ve afectada por puntos decimales, signos menos, etc. De auxy.com:

El número especificado por el atributo valor de la <xsd:totalDigits> la faceta restringirá el número total de dígitos permitidos en el número, en ambos lados del punto decimal.

+0

¿quiere decir que quiero usar totaldigits, entonces tendré que usar MinIncusie y MaxInclusive obligatoriamente? –

+0

No, no es necesario. Si no quiere especificar un rango, pero solo quiere asegurarse de que la gente no se vuelva loca utilizando un millón de dígitos o algo así, puede usar totalDigits sin minInclusive y maxInclusive. –

+0

, ¿los dígitos totales son conceptualmente "dígitos máximos totales" o el número exacto de dígitos requerido? La cita "faceta restringirá el número total de dígitos permitidos en el número" sigue siendo ambigua al respecto. Lo encontré en realidad máximo, no el exacto de otra fuente en línea. – ahnbizcad

2

totalDigits es el número total de dígitos que puede tener el número, incluidos los números decimales. Entonces un total de 4 permitiría 4.345 o 65.43 o 932.1 o un entero entero de 4 dígitos como en el ejemplo anterior. Lo mismo para negativo Cualquiera de esos ejemplos anteriores puede hacerse negativo y aún validar como un totalDigits de 4.

máximo y mínimo incluido/exclusivo limitan el rango de los números. El maxinclusive puede parecer un poco redundante en su ejemplo, pero el mininclusive se asegura de que el número sea mayor que 0.

+0

por lo que quiero decir que quiero usar totaldigits, entonces tendré que usar MinIncusie y MaxInclusive obligatoriamente ?? –

+0

Debería usar cada uno de estos para sus restricciones de número apropiadas. Se pueden usar individualmente o juntos. totalDigits especifica la cantidad máxima de dígitos permitidos para ClassRankType (no cuenta el signo o decimal, cuenta los dígitos en ambos lados del decimal). minInclusive especifica límites para "ClassRankType": el número es mayor o igual a 1, usaría minExclusive para mayor que. maxInclusive también especifica límites para "ClassRankType": el número es menor o igual a 9999, y al igual que el "min" puede usar maxExclusive por menos de. – PopeDarren