XML-схема и vb.net - PullRequest
       16

XML-схема и vb.net

0 голосов
/ 26 марта 2010

У меня есть файл схемы xml, предоставленный поставщиком. В корне файл имеет три основных элемента: Customer, ShipDate и Items. После добавления файла XSD в мой проект я не могу получить доступ к атрибуту ShipDate. Я не уверен, как справиться с этим. Я попытался создать новый элемент для ShipDate, похожий на другие элементы, но я не думаю, что сделал это правильно, поэтому я все вернул, как было Посмотрите на файл XSD ниже и дайте мне знать, что я делаю неправильно.

<?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>

1 Ответ

0 голосов
/ 29 марта 2010

Я подозреваю, что тип данных xs:date не поддерживается, если элемент указан как DataSet - вы можете использовать только xs: dateTime там.

Если вы не собираетесь использовать схему в качестве набора данных, вы можете удалить соответствующий атрибут msdata:IsDataSet="true" (и все пространство имен msdata в целом).

Если вы хотите, чтобы схема сохраняла набор данных, замените тип данных ShipDate на xs: dateTime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...