2010-03-26 77 views
0

我有一個由供應商提供的xml架構文件。在根目錄下,該文件有三個主要元素:Customer,ShipDate和Items。將XSD文件添加到我的項目後,我無法訪問ShipDate屬性。我不知道如何處理這個。我試圖爲ShipDate創建一個類似於其他元素的新元素,但我認爲我沒有正確執行,因此我將所有內容都放回原樣。看看下面的XSD文件,讓我知道我做錯了什麼。xml架構和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

你試過哪種方式?將模式保持爲DataSet或ShipDate數據類型? 您的VB項目中的模式的用途是什麼? – Filburt 2010-04-03 15:05:24

回答

0

我懷疑的是,當指定的元素是一個DataSet中的數據類型xs:date不支持 - 你只能使用的xs:日期時間在那裏。

如果您不打算將該模式用作數據集,則可以刪除相應的屬性msdata:IsDataSet="true"(以及完全的命名空間msdata)。

如果您希望模式保留DataSet,請將數據類型ShipDate替換爲xs:dateTime。

+0

感謝Filburt的迴應,但沒有奏效。 – fizch 2010-03-30 15:07:14