Domanda

Mi rendo conto che il valore 0.00 non è un valore non negativo intero, né un numero intero. Sfortunatamente, i dati arrivano in quel formato. Non voglio buttarlo via se termina con .0 ma, anche, non voglio cambiare il tipo in decimale e possibilmente avere valori che terminano con .1 e risultano validi.

C'è un modo in cui il mio XSD può convalidare i numeri in modo che siano solo numeri interi positivi, quindi i valori di 0.00, 0, 1, 1.0, 2.0000000 ecc sono tutti accettati, ma -1, 1.1, 2.2, 3.3333 non sono tutti validi ?

Grazie -c

È stato utile?

Soluzione

Potresti vedere come passare al decimale e posizionare una restrizione sui punti dopo il punto decimale. In particolare, potresti essere in grado di utilizzare un aspetto regex. Non l'ho mai provato e non so nemmeno se sia valido, ma è una direzione da guardare. Limiteresti lo spazio lessicale piuttosto che lo spazio valore, ma è quello che vuoi.

Altri suggerimenti

Funziona per quello che mi serve, grazie John

<xs:simpleType name="nonNegativeWholeDecimal">
    <xs:restriction base="xs:decimal">
        <xs:pattern value="[0-9]*(\.[0]*)?"/>
    </xs:restriction>
</xs:simpleType>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top