Makale numarası: 319372 - Son Gözden Geçirme: 29 Ekim 2002 Salı - Gözden geçirme: 1.2

SORUN: Kısıtlamaları DataSet şema dosyaları (XSD)

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir DataSet nesnesi, DataSet nesnesi bir şema dosyasını kullandığınızda, bazı sınırlamalar karşılaşabilirsiniz.

Neden

Benzersiz kısıtlama

DataSet nesnesi, yalnızca benzersiz öğe bulunuyorsa, DataSet</a1> öğesi düzeyinde benzersiz kısıtlamaları tanır. Bu geçerli bir XML şema tanımı (XSD) olsa da, aşağıdaki şema dosyasında, benzersiz kısıtlamayı, görmezsiniz.
<?xml version="1.0" encoding="utf-8" ?> 

 

  <xsd:schema id="configuration"  targetNamespace="http://microsoft.com/test/XMLSchema1.xsd" 

     xmlns:x1="http://microsoft.com/test/XMLSchema1.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

     xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 

     attributeFormDefault="qualified" elementFormDefault="qualified">

     <xsd:element name="configuration" msdata:IsDataSet="true" msdata:EnforceConstraints="true">

         <xsd:complexType>

                <xsd:sequence>

                     <xsd:element name="document" minOccurs="1" maxOccurs="unbounded">

                           <xsd:complexType>

                                <xsd:sequence>

                                   <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded">

                                       <xsd:complexType>

                                         <xsd:attribute name="name" form="unqualified" type="xsd:string" use="required" />

                                         <xsd:attribute name="value" form="unqualified" type="xsd:string" use="required" />

                                       </xsd:complexType>

                                    </xsd:element>

                                </xsd:sequence>

                             </xsd:complexType>

                             <xsd:unique name="unique1">

                                <xsd:selector xpath="./x1:parameter" />

                                <xsd:field xpath="@name" />

                             </xsd:unique>

                     </xsd:element>

                </xsd:sequence>

            </xsd:complexType>

        </xsd:element>

  </xsd:schema>
				
DataSet nesnesi aşağıdaki şema dosyasının benzersiz öğe tanımıyor:
<?xml version="1.0" encoding="utf-8" ?> 

 

  <xsd:schema id="configuration"  targetNamespace="http://microsoft.com/test/XMLSchema1.xsd" 

     xmlns:x1="http://microsoft.com/test/XMLSchema1.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

     xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 

     attributeFormDefault="qualified" elementFormDefault="qualified">

     <xsd:element name="configuration" msdata:IsDataSet="true" msdata:EnforceConstraints="true">

         <xsd:complexType>

                <xsd:sequence>

                     <xsd:element name="document" minOccurs="1" maxOccurs="unbounded">

                           <xsd:complexType>

                                <xsd:sequence>

                                   <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded">

                                       <xsd:complexType>

                                         <xsd:attribute name="name" form="unqualified" type="xsd:string" use="required" />

                                         <xsd:attribute name="value" form="unqualified" type="xsd:string" use="required" />

                                       </xsd:complexType>

                                    </xsd:element>

                                </xsd:sequence>

                             </xsd:complexType>

                       </xsd:element>

                </xsd:sequence>

            </xsd:complexType>

<xsd:unique name="unique1">

                  <xsd:selector xpath=".//x1:parameter" />

                  <xsd:field xpath="@name" />

             </xsd:unique>

        </xsd:element>

  </xsd:schema>


				

Çözüm

Microsoft şema dosyaları oluşturmak için <a0>DataSet</a0> nesnesinin WriteXmlSchema yöntemini kullanmanızı önerir. Bu DataSet nesnesi şema dosyasını kullanabilir ve DataSet nesnesi tanıdığı bir biçimde sağlar.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Kısıtlama öğe kullanımını çoğunlukla Yoksayılmış

Varolan bir basit tür kısıtlaması öğesi ile sınırlayarak, yeni bir basit tür türetmek. Basit türleri kısıtlama öğe kullandığınızda, kısıtlama öğesi yoksayıldı. Bu nedenle, bu <a0>kısıtlama</a0> öğesinin tüm sub-elements de dikkate alınmaz.
Örneğin:
<xsd:simpleType name="OrderID">
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="\d{3}-[A-Z]{2}"/>
  </xsd:restriction>
 </xsd:simpleType>
				
tüm kısıtlama öğeleri gibi basit XSD türü "dize" ve kendi esaslarını dışında sayılır:
  • Uzunluk
  • MinLength
  • MaxLength

Referanslar

DataSet ve XSD hakkında daha fazla bilgi için adresindeki aşağıdaki Microsoft Developer Network (MSDN) "yazma DataSet şema bilgileri olarak XML Schema (XSD)" konusuna bakın:
Writing DataSet Schema Information as XML Schema (XSD) (http://msdn.microsoft.com/en-us/library/aa735743.aspx)
Not: Bu bilgiler Microsoft Visual Studio .NET Yardımı belgelerinde kullanılabilir.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
Anahtar Kelimeler: 
kbmt kbprb KB319372 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:319372  (http://support.microsoft.com/kb/319372/en-us/ )