ID do artigo: 319372 - Última revisão: terça-feira, 29 de outubro de 2002 - Revisão: 1.2

PROBLEMA: Limitações para arquivos de esquema de DataSet (XSD)

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Talvez haja algumas limitações quando você usa um objeto DataSet para ler um arquivo de esquema não criou o objeto DataSet .

Causa

Restrições exclusivas

O objeto DataSet reconhece restrições exclusivas apenas se o elemento exclusivo for localizado no nível do elemento DataSet . Por exemplo, no arquivo de esquema a seguir, você não vir a restrição exclusiva, embora isso seja um XSD (XML Schema Definition) válido.
<?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>
				
o objeto DataSet reconhece o elemento exclusivo no arquivo de esquema seguinte:
<?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>


				

Resolução

A Microsoft recomenda que você use o método WriteXmlSchema do objeto DataSet para criar os arquivos de esquema. Isso garante que o objeto DataSet pode usar o arquivo de esquema e está em um formato que reconhece o objeto DataSet .

Situação

Esse comportamento é por design.

Mais Informações

Uso do elemento de restrição mais é ignorado

Você pode derivar um novo tipo simples restringindo um tipo simples existente com o elemento de restrição . Quando você usa o elemento de restrição de tipos simples, o elemento de restrição será ignorado. Portanto, todos os subelementos desse elemento de restrição são ignorados também.
Por exemplo:
<xsd:simpleType name="OrderID">
  <xsd:restriction base="xsd:string">
   <xsd:pattern value="\d{3}-[A-Z]{2}"/>
  </xsd:restriction>
 </xsd:simpleType>
				
todos os elementos de restrição são ignorados, exceto o tipo XSD simples "seqüência" e suas facetas da seguinte maneira:
  • comprimento
  • minLength
  • MaxLength

Referências

Para obter mais informações sobre DataSets e XSD, consulte o tópico "Criando DataSet esquema informações como esquema XML (XSD)" no seguinte (MSDN):
Writing DataSet Schema Information as XML Schema (XSD) (http://msdn.microsoft.com/en-us/library/aa735743.aspx)
Observação : estas informações também estão disponíveis na documentação da Ajuda do Microsoft Visual Studio .NET.

A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbmt kbprb KB319372 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 319372  (http://support.microsoft.com/kb/319372/en-us/ )