Artigo: 319372 - Última revisão: terça-feira, 29 de Outubro de 2002 - Revisão: 1.2

PROBLEMA: Limitações para ficheiros 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 | Reduzir tudo

Sintomas

Poderá detectar algumas limitações quando utiliza um objecto de DataSet para ler um ficheiro de esquema que não criou o objecto de DataSet .

Causa

Restrições exclusivas

O objecto de DataSet só reconhece restrições exclusivas se o elemento exclusivo for localizado ao nível do elemento DataSet . Por exemplo, no seguinte ficheiro de esquema, não vir uma restrição exclusiva, apesar de esta ser uma definição de esquema de XML (XSD) 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 objecto de DataSet reconhecer o elemento exclusivo no ficheiro 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 utilize o método WriteXmlSchema do objecto DataSet para criar os ficheiros de esquema. Isto assegura que o objecto de DataSet pode utilizar o ficheiro de esquema e está num formato que reconheça o objecto de DataSet .

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Utilização de restrição de elemento é principalmente ignorada

Pode derivar um novo tipo simples restringindo a um tipo simples existente com o elemento de restrição . Quando utiliza o elemento de restrição em tipos simples, o elemento de restrição é ignorado. Por conseguinte, todos os sub-elementos desse elemento 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>
				
restrição todos os elementos são ignorados excepto o tipo de simples XSD "cadeia" e os aspectos da seguinte forma:
  • comprimento
  • MinLength
  • MaxLength

Referências

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

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )