J'ai un fichier XML qui a des valeurs de date et d'autres types de données.
<Purchasedate Name="purcaseDate" value=""/>
4 Réponses :
Essayez d'ajouter cet attribut nillable = "true" dans la définition de la balise XML
Vous pouvez également jeter un coup d'œil à son lien http://www.zvon.org /xxl/xmlschemaTortial/Output/ser_over_st0.html
meilleures réaménagements,
de
Iordan p>
C'est trop facile ..
Tout ce que vous avez à faire est d'inclure Spécification de chaîne vide forte> dans votre C'est le façon de faire ça ..
Pour votre référence, j'ai écrit un échantillon de morceaux de codes .. P > échantillon xml: strong> p> échantillon XSD: (inclut le type personnalisé def) strong> p> < Pré> xxx pré> p> modèle code> p>
le '?' Le caractère dans la regex signifie que le caractère avant de se produire 0 ou 1 fois.
Ainsi afin de résoudre votre problème, vous devez envelopper la regex entre parenthèses et mettre un questionnaire à la fin: p>
<xs:simpleType name="PurchaseDateType"> <xs:restriction base="xs:string"> <xs:pattern value="(Regular_pattern_goes_here)?"/> </xs:restriction> </xs:simpleType>
Si vous contrôlez la syntaxe du XML, vous devez envisager de définir l'élément comme suit. Puisque XML-Schema fournit déjà un type de date, vous devez l'utiliser à moins d'avoir une raison vraiment bonne raison. Je dis cela parce que cela facilitera la tâche que d'autres utilisent le XML et pour que vous utilisiez de meilleures structures de code plus tard. Je n'ai pas inclus l'attribut "nom" car il semblait redondant du nom de l'élément.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="Purchasedate" nillable="true" type="xs:date"/> <xs:element name="Purchasedate2"> <xs:complexType> <xs:attribute name="value" type="xs:date"/> </xs:complexType> </xs:element> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element ref="Purchasedate"/> <xs:element minOccurs="0" ref="Purchasedate2"/> </xs:sequence> </xs:complexType> </xs:element>