2010-03-26 5 views
0

J'ai un fichier de schéma XML fourni par un fournisseur. À la racine, le fichier comporte trois éléments principaux: Customer, ShipDate et Items. Une fois que j'ai ajouté le fichier XSD à mon projet, je ne peux pas accéder à l'attribut ShipDate. Je ne suis pas sûr de savoir comment gérer cela. J'ai essayé de créer un nouvel élément pour le ShipDate semblable aux autres éléments, mais je ne pense pas que je l'ai fait correctement, alors j'ai tout remis comme si c'était. Jetez un oeil au fichier XSD ci-dessous, et laissez-moi savoir ce que je fais mal.xml schema et vb.net

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema id="PricingRequest" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
    <xs:annotation> 
    <xs:documentation> 
     Request Prices Schema for Power Net 
     Copyright 2009 Retalix. All rights reserved. 
    </xs:documentation> 
    </xs:annotation> 

    <xs:element name="PricingRequest" msdata:IsDataSet="true"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="1" minOccurs="1" ref="Customer"/> 
     <xs:element maxOccurs="1" minOccurs="1" name="ShipDate" type="xs:date"/> 
     <xs:element maxOccurs="1" minOccurs="1" ref="Items"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="Customer" msdata:IsDataSet="true"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Company" type="companyType"/> 
     <xs:element name="Division" type="companyType"/> 
     <xs:element name="Department" type="companyType"/> 
     <xs:element name="Number" type="customerType"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="Items" msdata:IsDataSet="true"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="unbounded" minOccurs="1" ref="Item"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="Item" msdata:IsDataSet="true"> 
    <xs:complexType> 
     <xs:attribute name="number" type="itemNumberType" use="required"/> 
    </xs:complexType> 
    </xs:element> 

    <!-- Power Net Specific data types --> 
    <xs:simpleType name="companyType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="[A-Z0-9\s]{3}"/> 
     <xs:whiteSpace value="preserve"/> 
    </xs:restriction> 
    </xs:simpleType> 

    <xs:simpleType name="customerType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="([A-Z0-9\-])*"/> 
     <xs:minLength value="1"/> 
     <xs:maxLength value="10"/> 
    </xs:restriction> 
    </xs:simpleType> 

    <xs:simpleType name="itemNumberType"> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="([A-Z0-9\-])*"/> 
     <xs:minLength value="1"/> 
     <xs:maxLength value="10"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 
+0

De quelle façon avez-vous essayé? Conserver le schéma en tant que DataSet ou le type de données ShipDate? Quelle est votre utilisation prévue pour le schéma de votre projet VB? – Filburt

Répondre

0

Je suppose que le type de données xs:date est pas pris en charge lorsque l'élément est spécifié comme un DataSet - vous ne pouvez utiliser xs: dateTime là.

Si vous n'avez pas l'intention d'utiliser le schéma en tant que DataSet, vous pouvez supprimer l'attribut suivant msdata:IsDataSet="true" (et l'ensemble de l'espace de nom msdata complètement).

Si vous souhaitez que le schéma reste un DataSet, remplacez le type de données ShipDate par xs: dateTime.

+0

Merci pour la réponse, Filburt, mais cela n'a pas fonctionné. – fizch