2011-02-18 131 views
5

使用XSD我想只接受YYYYMMDD格式的日期在我的XML字段.. 所以,我怎么能做到这一点使用XS:日期我想在格式YYYYMMDD日期

我在一个例子中看到了这个工作?

+6

xs:日期格式为YYYY-MM-DD。为什么你在意XML格式的日期格式?你的应用程序应该照顾到将其转换为所需的格式。 – asgs 2011-02-18 09:43:45

回答

9

XML模式definesdateTime作为ISO8601有一些例外,你应该坚持这一点,否则你会得到严重的互操作性问题。如果您要发送/接收日采用不同的格式,请使用simpleType用正则表达式限制和解析/格式化日期在应用程序代码:

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

如果你真的想勾搭内建类型(非常不可取的),你的XML框架/库可能会有一些支持。例如,在Java/JAXB中,您可以将自定义变换器/格式化程序应用于任何类型,因此在客户机/服务器代码中,您仍然使用Date对象(不是8位String),但是它使用自定义例程进行编组/非编组。

+0

\t \t \t \t \t \t \t \t \t \t \t \t \t这是正确?是标签CustomDate强制要求 – 2011-02-18 10:19:52