xs:length — Facet to define the length of a value.
<xs:length fixed = xs:boolean : “false” id = xs:ID value = xs:nonNegativeInteger {any attributes with non-schema namespace} > Content: (xs:annotation?) </xs:length>
May be included in: xs:restriction (simple type), xs:restriction (simple content)
May be used as facet for: xs:anyURI, xs:base64Binary, xs:ENTITIES, xs:ENTITY, xs:hexBinary, xs:ID, xs:IDREF, xs:IDREFS, xs:language, xs:Name, xs:NCName, xs:NMTOKEN, xs:NMTOKENS, xs:normalizedString, xs:NOTATION, xs:QName, xs:string, xs:token
xs:length
is a facet that allows the definition of
the length expressed in a unit that depends on the datatype. For most
of the datatypes, the unit is the character as defined in the XML 1.0
Recommendation (i.e., Unicode characters defined by ISO/IEC 10646
that may be represented on more than 8 bits). The exceptions are the
binary datatypes (xs:hexBinary
and
xs:base64Binary
), for which lengths are expressed
in number of bytes (8 bits) of binary data, and all the list
datatypes, for which lengths are expressed in number of list items.
xs:length
constrains the value space. In practice,
this means that it is checked after whitespace replacement and
collapsing, as defined by the xs:whiteSpace
facet.
This is a logical length that has often no direct relation to the size of storage needed for the value.
The value of this facet cannot be modified during further
restrictions, and the value of the fixed
attribute
is meaningless (the behavior is always as if the facet were fixed).
Although also not specified in the Recommendation,
xs:length
interacts with the
xs:minLength
and xs:maxLength
and shouldn’t set the length to a value not in the
range between xs:minLength
and
xs:maxLength
of its base type.
Fixing the xs:length
facet
doesn’t fix the xs:maxLength
and
xs:minLength
facets. To fix the three facets,
define two restriction steps, since it is forbidden to apply these
facets in the same restriction step.
18.222.120.133