Makale numarası: 317611 - Son Gözden Geçirme: 12 Şubat 2007 Pazartesi - Gözden geçirme: 6.4

Hata: Tür "###" başvurusu için yerel eklenen bir XSD Schema dosya türü bildirilmedi

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

.NET framework XSD şeması doğrulama desteği geçerli uygulaması targerNamespace dahil bir XSD yerel başvuru türüne dönüştürmek ("chameleon" desteği içerir). Örneğin, aşağıdaki a.xsd dosyası b.xsd ve c.xsd dosyalarını içerir:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 	targetNamespace="test">

	<xsd:include schemaLocation="b.xsd" />
	<xsd:include schemaLocation="c.xsd" />
</xsd:schema>
				
b.xsd, testType türü olarak tanımlanır:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:simpleType name="testType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="test"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
				
c.xsd, sınama, testType türüyle bildirilir:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="test" type="testType"/>             <!-- this fails, but it should not fail -->
</xsd:schema>
				
aşağıdaki hata iletisini a.xsd şema dosyasıyla döndürülür:
"Içinde c.xsd 'testType' türü bildirilmedi."

Çözüm

Bu soruna geçici bir çözüm bulmak için <a0></a0>, bir xmlns ekleyin: Örneğin, "test" ad alanı bildirimi c.xsd dosyaya =:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="test">
	<xsd:element name="test" type="testType" xmlns="test"/>              
</xsd:schema>
				

Durum

Microsoft, Microsoft bir hata olduğunu onaylamıştır bu makalenin başında listelenen ürünlerden.

Daha fazla bilgi

Sorunu Yeniden Oluşturma Adımları

  1. Önceki a.xsd dosya c:\temp klasöre kaydedin. Aynı klasörde b.xsd ve c.xsd dosyalar a.xsd kaydedin.
  2. Proje C# konsol oluşturun.
  3. Kodu Değiştir Class1.cs dosyasında aşağıdaki koduna sahip olur:
    using System;
    using System.IO;
    using System.Xml;
    using System.Xml.Schema;
    
    namespace ValidationTest
    {
    	class Sample
    	{
    		public static void Main()
    		{
    			try
    			{
    				XmlSchemaCollection sc = new XmlSchemaCollection();
    				sc.Add("test", "c:\\temp\\a.xsd");
                                    Console.WriteLine("No Schema error.");			
    			}
    			catch(XmlSchemaException ex)
    			{
    				Console.WriteLine("XSD schema Error: {0}", ex.Message);
    			}
    			
    			Console.Read();
    		}
    	}
    }
    					
  4. Derleme ve sonra projeyi çalıştırın. Konsol penceresinde, aşağıdaki hata iletisi verilir:
    XSD şeması Hata: tür 'test' olarak bildirilen. File:///c:/temp/c.xsd(2, 3) hatası.
  5. C.xsd dosyasını açın ve sonra xmlns ekleyin "test" için xsd:element, örneğin =:
    <xsd:element name="test" type="test" xmlns="test"/>
    					
  6. Derleme ve sonra projeyi çalıştırın. Konsol penceresinde aşağıdaki çıktıyı verir:
    Schema hata oluştu.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework Class Libraries 1.0
  • Microsoft .NET Framework Class Libraries 1.1
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2003 Professional Edition
Anahtar Kelimeler: 
kbmt kbvs2002sp1sweep kbbug kbenv KB317611 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:317611  (http://support.microsoft.com/kb/317611/en-us/ )