Pregunta

Me doy cuenta de que el valor 0.00 no es válido, no es un NegativeInteger, ni es un entero. Desafortunadamente, los datos vienen en ese formato. No quiero deshacerme de él si termina con .0, pero tampoco quiero cambiar el tipo a Decimal y posiblemente los valores que terminen en .1 sean válidos.

¿Existe alguna forma en que mi XSD pueda validar números de modo que sean números enteros positivos, de modo que se acepten valores de 0.00, 0, 1, 1.0, 2.0000000, etc., pero -1, 1.1, 2.2, 3.3333 no son válidos? ?

Gracias -c

¿Fue útil?

Solución

Puedes ver cambiar a decimal y colocar una restricción en los lugares después del punto decimal. En particular, es posible que pueda utilizar una faceta de expresiones regulares. Nunca he intentado esto, y ni siquiera sé si es válido, pero es una dirección a seguir. Estaría restringiendo el espacio léxico en lugar del espacio de valor, pero eso es lo que quiere.

Otros consejos

Esto funciona para lo que necesito, gracias John

<xs:simpleType name="nonNegativeWholeDecimal">
    <xs:restriction base="xs:decimal">
        <xs:pattern value="[0-9]*(\.[0]*)?"/>
    </xs:restriction>
</xs:simpleType>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top