Messaggio di errore quando si visualizzano gli schemi XSD multidimensionali nella progettazione di Schema XML di Visual Studio .NET

Sintomi

Quando si tenta di aprire e visualizzare uno schema XML Schema Definition (XSD) multidimensionali in Visual Studio .NET, una finestra di progettazione XML può aprire invece di una finestra di progettazione Schema e venga visualizzato il seguente messaggio di errore nella visualizzazione dati di progettazione XML:

Sebbene questo documento XML ha un formato corretto, contiene una struttura che non è possibile visualizzare il DataView. La stessa tabella (TableName) non può essere figlio in due relazioni nidificate

Causa

Lo schema XSD viene salvato come file con estensione XML. Le finestre di progettazione di Visual Studio .NET sono basate sull'estensione. File con estensione XML vengono interpretati come normali file XML, in modo che viene visualizzata una finestra di progettazione XML invece di una finestra di progettazione Schema quando si tenta di aprire e visualizzare il documento in Visual Studio .NET. La finestra di progettazione XML in Visual Studio .NET utilizza le regole di inferenza dello schema ADO.NET per dedurre automaticamente lo schema di un documento XML. Le regole di inferenza dello schema ADO.NET non autorizza o supportare relazioni multidimensionali nella versione RTM di Microsoft.NET Framework.

Risoluzione

Rinominare o salvare il documento come file con estensione XSD per aprirlo e visualizzarlo in una finestra di progettazione di Schema XML di Visual Studio .NET. La progettazione Schema XML di Visual Studio .NET correttamente possono caricare e visualizzare gli schemi XSD multidimensionali.

Stato

Questo è il comportamento previsto.

Ulteriori informazioni

Per creare nuovamente il messaggio di errore e verificare la risoluzione, procedere come segue:

  1. Nel blocco note incollare il codice seguente in un nuovo file:
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="OrdersInventoryData" type="OrdersInventoryDataType" />
    <xs:complexType name="ItemType">
    <xs:sequence>
    <xs:element name="id" type="xs:string" />
    <xs:element name="qty" type="xs:integer" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="OrderType">
    <xs:sequence>
    <xs:element name="OrderId" type="xs:string" />
    <xs:element name="CustomerId" type="xs:string" />
    <xs:element name="Item" type="ItemType" maxOccurs="unbounded" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="InventoryType">
    <xs:sequence>
    <xs:element name="Item" type="ItemType" maxOccurs="unbounded" />
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="OrdersInventoryDataType">
    <xs:sequence>
    <xs:element name="Order" type="OrderType" maxOccurs="unbounded" />
    <xs:element name="Inventory" type="InventoryType" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>

  2. Salvare il file come OrderInventory.xml sul disco rigido. Schema di esempio è multidimensionale poiché sia l' ordine e gli elementi figlio di inventario dell'elemento OrdersInventoryData dispongono di un elemento figlio denominato elemento complexType ItemType ( l'elemento è un figlio in due relazioni padre-figlio).
  3. In Visual Studio .NET, aprire un progetto nuovo o esistente in Microsoft Visual Basic .NET o Microsoft Visual C# .NET, ad esempio un progetto applicazione Windows o un progetto applicazione Console.
  4. Aggiungere il documento XML di OrderInventory.xml che avete appena creato per il progetto.
  5. In Esplora soluzioni, fare doppio clic per aprire OrderInventory.xml. Una visualizzazione XML del contenuto del documento viene visualizzata in una finestra di progettazione XML.
  6. Passare alla visualizzazione dei dati della finestra di progettazione XML. Viene visualizzato il seguente messaggio di errore:
    Sebbene questo documento XML ha un formato corretto, contiene una struttura che non è possibile visualizzare il DataView. La stessa tabella (elemento) non può essere figlio in due relazioni nidificate
    L'estensione di file XML fa sì che una finestra di progettazione XML per essere aperta invece di una finestra di progettazione dello Schema. Il contenuto del file è pertanto considerato regolari XML anziché come uno schema XSD. Quando si apre una finestra di progettazione XML di Visual Studio .NET per visualizzare dati XML, vengono applicate le regole di inferenza dello schema ADO.NET per determinare la struttura dello schema del documento XML. Dalla prospettiva di inferenza dello schema ADO.NET, un elemento XML complexType viene dedotto come tabella indipendente e una tabella non può essere una tabella figlio in due o più relazioni padre-figlio. Nello schema di esempio, l'elemento di complexType ItemType è stato definito per essere un figlio di ordine (OrderType complexType) e gli elementi di magazzino (InventoryType complexType). Questo non è consentito o supportato da regole di inferenza dello schema ADO.NET nella versione RTM di Microsoft.NET Framework.
  7. Chiudere la finestra di progettazione XML.
  8. In Esplora soluzioni rinominare OrderInventory.xml in OrderInventory.xsd. A tale scopo, il file e quindi scegliere Rinomina.
  9. In Esplora soluzioni, fare doppio clic per aprire OrderInventory.xsd. Una visualizzazione XML del contenuto del documento viene visualizzata in una finestra di progettazione Schema XML. Passare alla visualizzazione Schema e le strutture di schema vengono visualizzate correttamente.
È inoltre che venga visualizzato il messaggio di errore "la stessa tabella (TableName) non può essere figlio in due relazioni nidificate" quando si utilizzano il file XML con Visual Studio .NET o con l'utilità Xsd.exe.
Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

325696 viene visualizzato un messaggio di errore quando si visualizzano i dati multidimensionali di XML in Progettazione XML di Visual Studio .NET

Proprietà

ID articolo: 325695 - Ultima revisione: 30 gen 2017 - Revisione: 1

Feedback