The disadvantage that I can see with that solution is the xs:unsignedInt is 
doing essentially nothing - it may as well be xs:string. The pattern is doing 
all the constraining. Do you agree?

Thanks Brandon.

/Roger

From: Sloane, Brandon <[email protected]>
Sent: Wednesday, June 19, 2019 12:13 PM
To: [email protected]
Subject: [EXT] Re: How to declare an element of type xs:unsignedInt, restricted 
to one to five digit characters?


Assuming your input is plaintext, you could use the dfdl:lengthPattern 
attribute:



            <xs:element name="value"
                 type="xs:unsignedInt"
                 dfdl:lengthKind="pattern"
                 dfdl:lengthPattern="[0-9]{1,5}"
                 />



You could also use lengthKind="delimited" and add an assertion (and/or xsd 
restriction) on the value.

________________________________
From: Costello, Roger L. <[email protected]<mailto:[email protected]>>
Sent: Wednesday, June 19, 2019 9:30:11 AM
To: [email protected]<mailto:[email protected]>
Subject: How to declare an element of type xs:unsignedInt, restricted to one to 
five digit characters?

Hello DFDL community,

The below DFDL schema says that the input must contain a string that represents 
an unsignedInt and the string must not contain more than five digit characters.

Eek!

That's not correct. The below DFDL schema says that the input must contain a 
string that represents an unsignedInt and the string must contain *exactly* 
five digit characters.

Is there a way to write the DFDL schema to specify that the input must contain 
a string that represents an unsignedInt and the string must contain *one to 
five* digit characters? That is, how to specify that the input could be any of 
these strings:

"0", "1", ..., "99999"

<xs:element name="input">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="value"
                 type="xs:unsignedInt"
                 dfdl:lengthKind="explicit"
                 dfdl:length="5"
                 dfdl:lengthUnits="characters" />
        </xs:sequence>
    </xs:complexType>
</xs:element>

Reply via email to