Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

xml - XSD date format overriding

I am defining an XSD. I need to define an element which takes date in format yyyymmdd. How can I define a restriction in XSD to only accept this format?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You could always define it as a restricted simple type based on a string, restricted by a regular expression:

<xs:simpleType name="FormattedDateType">
   <xs:restriction base="xs:string">
       <xs:pattern value="d{8}"/>
   </xs:restriction>
</xs:simpleType>

If you want to get really smart, you can tweak the regular expression to be even more of a match for a date (e.g. contains the info that month can only be 01 - 12 and so forth):

<xs:simpleType name="FormattedDateType">
   <xs:restriction base="xs:string">
       <xs:pattern value="d{4}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])"/>
   </xs:restriction>
</xs:simpleType>

Marc


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...