XSD date format overriding

后端 未结 2 995
无人共我
无人共我 2021-01-03 00:47

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?

相关标签:
2条回答
  • 2021-01-03 01:23

    If you want the format of MM/DD/YYYY in xml then this code can help you for this format

    <xs:element name="StartDate">
       <xs:simpleType>
          <xs:restriction base="xs:string">
             <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}"/>
         <xs:length value="10"/>
          </xs:restriction>
       </xs:simpleType>
    </xs:element>
    
    0 讨论(0)
  • 2021-01-03 01:26

    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

    0 讨论(0)
提交回复
热议问题