bonjour,
j'utilise l'objet SQLXMLBulkload.4.0 pour importer mon xml dans une base SQL Server
avec un schema XSD simple tout marche.
mais j'aimerais pouvoir profiter de la puissance de XSD pour valider mon xml et donc pouvoir le rejeter le cas echéant.
je recherche de base à pouvoir verifier le nombre de caracteres et j'aimerais aussi pouvoir tester que certains champs soit obligatoire.
hors des que je modifie mon schema d'apres ce que j'ai vu sur le net cela ne fonctionne plus.
comment puis je faire pour :
-préciser le maximum de caractere acceptable dans un champ du XML
-préciser que ce champ ne soit pas null mais obligatoire.
voici le schema de base qui fonctionne tres bien.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id = "BROCHURES" xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:sql = "urn:schemas-microsoft-com:mapping-schema">
<xs:element name = "BROCHURE" sql:relation = "VDM_FLUX_BROCHURE">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs = "0" name = "CODE_CONTACT" type = "xs:int" sql:field = "CODE_CONTACT" sql:datatype = "bigint"/>
<xs:element minOccurs = "0" name = "CODE_BROCHURE" type = "xs:string" sql:field = "CODE_BROCHURE" sql:datatype = "nvarchar(255)"/>
<xs:element minOccurs = "0" name = "ENSEIGNE" type = "xs:string" sql:field = "ENSEIGNE" sql:datatype = "nvarchar(255)"/>
<xs:element minOccurs = "0" name = "DATE_DEMANDE" type = "xs:string" sql:field = "DATE_DEMANDE" sql:datatype = "datetime"/>
<xs:element minOccurs = "0" name = "ORIGINE" type = "xs:string" sql:field = "ORIGINE" sql:datatype = "varchar(255)"/>
<xs:element minOccurs = "0" name = "LIBELLE_BROCHURE" type = "xs:string" sql:field = "LIBELLE_BROCHURE" sql:datatype = "varchar(255)"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>Celui ci ne fonctionne pas ???
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id = "BROCHURES" xmlns:xs = "http://www.w3.org/2001/XMLSchema" xmlns:sql = "urn:schemas-microsoft-com:mapping-schema">
<xs:element name = "BROCHURE" sql:relation = "VDM_FLUX_BROCHURE">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs = "0" name = "CODE_CONTACT" type = "xs:int" sql:field = "CODE_CONTACT" sql:datatype = "bigint"/>
<xs:element minOccurs = "0" name = "CODE_BROCHURE" type = "xs:string" sql:field = "CODE_BROCHURE" sql:datatype = "nvarchar(255)">
<xs:block>
<xs:length>10</xs:length>
</xs:block>
</xs:element>
<xs:element minOccurs = "0" name = "ENSEIGNE" type = "xs:string" sql:field = "ENSEIGNE" sql:datatype = "nvarchar(255)"/>
<xs:element minOccurs = "0" name = "DATE_DEMANDE" type = "xs:string" sql:field = "DATE_DEMANDE" sql:datatype = "datetime"/>
<xs:element minOccurs = "0" name = "ORIGINE" type = "xs:string" sql:field = "ORIGINE" sql:datatype = "varchar(255)"/>
<xs:element minOccurs = "0" name = "LIBELLE_BROCHURE" type = "xs:string" sql:field = "LIBELLE_BROCHURE" sql:datatype = "varchar(255)"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>HELP !!
******************************************
Installation Home-Cinéma de particuliers sur http://www.digital16-9.com