2011-02-18 86 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