<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/vstudio/debugger/natvis/2010" xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- Definition of complex named types-->

  <xs:simpleType name="GuidType">
    <xs:annotation>
      <xs:documentation>Bu türün değerleri şöyle görünüyor: "01234567-89AB-CDEF-0123-456789ABCDEF" veya "{01234567-89AB-CDEF-0123-456789ABCDEF}".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="CppIdType">
    <xs:annotation>
      <xs:documentation>Geçerli C++ tanımlayıcısı.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z$_][a-zA-Z$_0-9]*"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="StringType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="MaxItemsPerViewType">
    <xs:annotation>
      <xs:documentation>
        Aynı anda gösterilecek en fazla koleksiyon öğesi sayısını belirtir.  Koleksiyon öğesi sayısı sınırı aşarsa sonunda özel bir 
        düğüm oluşturulur ve bu da ek öğeleri gösterecek şekilde genişletilebilir.

        Bir görünümdeki en fazla öğe sayısının tam kesim sayısı bir ayarlama parametresindedir. Daha yüksek bir sayı aynı anda daha fazla öğenin
        görünür olmasını sağlarken daha düşük bir sayı özel bir lise nesnesi genişletildiğinde Visual Studio'nun performansını artırır.  Genel olarak
        geçiş mantığı ne kadar karmaşık olursa IDE'nin yanıt verebilir olmasını sağlamak için görünümde olması gereken öğe sayısı da o kadar az olur.

        Görünüm başı en fazla öğe sayısı 1 ila 50.000 arasında olmalıdır.  Bu özellik belirtilmezse varsayılan olarak 5000 öğe değeri kullanılır.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:unsignedInt">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="50000"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ConditionType">
    <xs:annotation>
      <xs:documentation>Bu öğenin altında etkin olduğu koşulu belirtir. İfade değerlendirildiğinde bir boolean değer üretir.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="OptionalType">
    <xs:annotation>
      <xs:documentation>
        Öğenin isteğe bağlı olup olmadığını belirtir.  Ayrıştırması başarısız olan isteğe bağlı bir öğe, kapsayıcı &lt;Type&gt; varlığında kalan öğelerin kullanılmasını
        sağlar.  Ayrıştırması başarısız olan zorunlu bir öğe tüm kapsayıcı &lt;Type&gt; öğesinin geçersiz olmasına neden olur.  Varsayılan olarak tüm öğeler Optional="true" olarak,
        belirlenmediği sürece zorunlu kabul edilir.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:boolean">
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ViewIncludeType">
    <xs:annotation>
      <xs:documentation>
        Bu öğenin gösterilmesi gerektiği görünümlerdeki noktalı virgüllü listeyi belirtir.  Bu nesnenin görünümü view(&lt;name&gt;) 
        biçim belirleyicisi tarafından kontrol edilir.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ViewExcludeType">
    <xs:annotation>
      <xs:documentation>
        Bu öğenin gizlenmesi gereken görünümlerdeki noktalı virgüllü listeyi belirtir.  Bu nesnenin görünümü view(&lt;name&gt;)
         biçim belirleyicisi tarafından kontrol edilir.
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TypeNameType">
    <xs:annotation>
      <xs:documentation>Bu türün görünen tam adını belirtin. Tür şablon sınıfı ise şablon parametreler için '*' joker karakteri içerebilir. Temel veri türü adlarına yalnızca UIVisualizer tanımları ile izin verilir.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ModuleNameStringType">
    <xs:annotation>
      <xs:documentation>Bir modül adı belirtin. Yalnız modül adı içermeli ve mutlak veya göreli yollar içermemeli.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:pattern value="([^\\^//])+"/>
      <!-- Prevent absolute or relative pathing, just the module name only-->
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="VersionStringType">
    <xs:annotation>
      <xs:documentation>1.2.3.4 veya 1.2 kabul edilebilir.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="([0-9])+\.([0-9])+(\.([0-9])+\.([0-9])+)?"/>
      <!--1.2.3.4 or 1.2 are acceptable -->
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="AlternativeHResultType">
    <xs:annotation>
      <xs:documentation>Aynı görselleştiriciyi paylaşacak alternatif bir HRESULT belirtir.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="Name" type="TypeNameType" use="required"/>
  </xs:complexType>

  <xs:complexType name="IntrinsicParameterType">
    <xs:annotation>
      <xs:documentation>Belirtilen iç işlev için parametrenin türünü belirtir.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="Type" type="StringType" use="required"/>
    <xs:attribute name="Name" type="CppIdType" use="optional">
      <xs:annotation>
        <xs:documentation>Bir ifade sağlanırsa, ifadenin parametreye başvurmak için kullanacağı adı belirtir.  İşlev bir hata ayıklayıcı uzantısı aracılığıyla uygulanıyorsa,
        bu öznitelik çıkarılabilir.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="IntrinsicType">
    <xs:annotation>
      <xs:documentation>Bir ifadeden çağrılabilen özel bir iç işlevi açıklar.  Bir &lt;İç&gt; öğeyle birlikte
        işlevi IDkmIntrinsicFunctionEvaluator140 arabiriminde uygulayan bir hata ayıklayıcı bileşeni de bulunmalıdır.
      </xs:documentation>
    </xs:annotation>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Parameter" minOccurs="0" maxOccurs="unbounded" type="IntrinsicParameterType"></xs:element>
    </xs:choice>
    <xs:attributeGroup ref="CommonAttributes_NoCondition_NoView"/>
    <xs:attribute name="Name" type="CppIdType" use="required">
      <xs:annotation>
        <xs:documentation>İş işlevin adı. Bu değer geçerli bir C++ tanımlayıcısı olmalıdır.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Category" type="IconType" use="optional">
      <xs:annotation>
        <xs:documentation>Bu işlevi çağıran ifadelerin sonuçlarına hangi kategorideki simgenin atanacağını belirtir.  İşlevi çağıran ifadeler için
        izleme penceresinde kullanılan simgeyi denetler.  Varsayılan kategori değeri 'Method'dır.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="ReturnType" type="StringType" use="optional">
      <xs:annotation>
        <xs:documentation>İçsel işlevin dönüş türü.  Bir ifade sağlanırsa dönüş türü çıkarılabilir (ifadenin türü dönüş türünü örtülü olarak belirtecektir).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Expression" type="StringType" use="optional">
      <xs:annotation>
        <xs:documentation>
          Değerlendirme sonucu işlevin dönüş değeri olan ifade.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SourceId" type="GuidType" use="optional">
      <xs:annotation>
        <xs:documentation>İşlevi uygulayan hata ayıklama bileşenini tanımlamak için kullanılan kaynak kimliğini belirler. Bu değer IDkmIntrinsicFunctionEvaluator140 uygulamasının filtre kısıtlamalarıyla eşleşmelidir.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="LanguageId" type="GuidType" use="optional">
      <xs:annotation>
        <xs:documentation>İşlevi uygulayan hata ayıklama bileşenini tanımlamak için kullanılan dil kimliğini belirler. Bu değer IDkmIntrinsicFunctionEvaluator140 uygulamasının filtre kısıtlamalarıyla eşleşmelidir.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Id" type="xs:unsignedInt" use="optional">
      <xs:annotation>
        <xs:documentation>Belirtilen kaynak kimliği ve dil kimliğiyle bu işleve ait benzersiz kimliği belirtir. Birden çok iç işlev uyguluyorsa, uygulayan bileşen tarafından hangi işlevin
        çağrıldığını belirlemek için kullanılır.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="SideEffect" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>True ise, bu işlevin yan etkilere neden olabileceğini gösterir.  True ise, bu işleve yapılan çağrılar
        beklenmeyen yan etkilerin kullanıcı için kafa karıştırıcı olabileceği senaryolarda devre dışı bırakılır.  Hata ayıklayıcı veya Visual Studio'da durumu değiştiren işlevler bunu true olarak ayarlamalıdır.
        Varsayılan olarak, bu değer false olarak ayarlanmıştır.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Varargs" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>
          True ise, işlevin bir varargs işlevi olduğunu ve ek bağımsız değişkenlerin açıkça listelenen parametrelerden sonra geçirilebileceğini gösterir.  Varsayılan değer: false.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="AlternativeTypeType">
    <xs:annotation>
      <xs:documentation>Aynı görselleştiriciyi paylaşacak alternatif bir tür belirtin.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="Name" type="TypeNameType" use="required"/>
    <xs:attribute name="Priority" type="PriorityType" use="optional"/>
    <xs:attribute name="Inheritable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>
          Bu görselleştirici, verilen türden türetilmiş sınıfların nesneleri tarafından kullanılabiliyorsa true, görselleştiricinin etkinleşebilmesi için nesnenin doğrudan bu türde olması gerekiyorsa false.
          Varsayılan true'dur.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="VersionType">
    <xs:annotation>
      <xs:documentation>Bu görselleştiricisi için eşleşen bir modül adı ve sürüm belirtin.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="Name" type="ModuleNameStringType" use="required"/>
    <xs:attribute name="Min" type="VersionStringType" use="optional">
      <xs:annotation>
        <xs:documentation>En düşük sürüm numarasını (dahil) belirtin. </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Max" type="VersionStringType" use="optional">
      <xs:annotation>
        <xs:documentation>En yüksek sürüm numarasını (dahil) belirtin. </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  
  <!-- Attributes for elements that support filtering by view-->
  <xs:attributeGroup name="ViewConstraints">
    <xs:attribute name="IncludeView" type="ViewIncludeType" use="optional"/>
    <xs:attribute name="ExcludeView" type="ViewExcludeType" use="optional"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="CommonAttributes_NoCondition_NoView">
    <xs:attribute name="ModuleName" type="ModuleNameStringType" use="optional"/>
    <xs:attribute name="ModuleVersionMin" type="VersionStringType" use="optional"/>
    <xs:attribute name="ModuleVersionMax" type="VersionStringType" use="optional"/>
    <xs:attribute name="Optional" type="OptionalType" use="optional"/>
  </xs:attributeGroup>

  <xs:attributeGroup name="CommonAttributes_NoCondition">
    <xs:attributeGroup ref="CommonAttributes_NoCondition_NoView"/>
    <xs:attributeGroup ref="ViewConstraints"/>
  </xs:attributeGroup>

  <!-- These attributes are shared by all top-level natvis elements (DisplayString/StringView/top-level children of Expand)-->
  <xs:attributeGroup name="CommonAttributes">
    <xs:attributeGroup ref="CommonAttributes_NoCondition"/>
    <xs:attribute name="Condition" type="ConditionType" use="optional"/>
  </xs:attributeGroup>

  <xs:complexType name="DisplayStringType">
    <xs:annotation>
      <xs:documentation>Görünen türün nesnesinin değeri olarak gösterilecek dizeyi belirtin. Deyimlerle karışık rastgele dizeleri kabul eder. Kaşlı ayraçlar içindeki her şey (yani { ve }) bir ifade olarak yorumlanır ve değerlendirilir. Kaşlı ayraçtan çıkış için iki küme parantezi yazabilirsiniz (yani {{ veya }}).</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attributeGroup ref="CommonAttributes"/>
        <xs:attribute name="LegacyAddin" type="StringType" use="optional">
          <xs:annotation>
            <xs:documentation>Eski bir eklenti varsa, eski eklentiyi dll belirtin. Tam yol belirtilmezse Visual Studio, görselleştiricisi dizini yanındaki eklenti olarak belirtilen .natvis dosyasına bakar. Normal görünen dizeye bir eklenti ile birlikte izin verilir ve eklenti dll'si yüklü değilse bir geri dönüş olarak kullanılır.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="Export" type="StringType" use="optional">
          <xs:annotation>
            <xs:documentation>Eski bir eklenti varsa, eski eklenti uygulaması için dışarı aktarmanın adını belirtir. Bu öznitelik yalnızca 'LegacyAddin' de belirtilirse geçerlidir.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="Encoding" type="EncodingType" use="optional">
          <xs:annotation>
            <xs:documentation>Eski eklenti tarafından döndürülen dizenin kodlamasını belirtir. Varsayılan Utf8'dir. Bu öznitelik yalnızca 'LegacyAddin' de belirtilirse geçerlidir.
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="EncodingType">
    <xs:restriction base="xs:normalizedString">
      <xs:enumeration value="Ansi"/>
      <xs:enumeration value="Utf8"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="CustomVisualizerType">
    <xs:annotation>
      <xs:documentation>Bu nesnenin hata ayıklayıcı görünümünü özelleştiren görselleştirici eklentisini belirt.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="VisualizerId" type="GuidType" use="required"/>
    <xs:attributeGroup ref="CommonAttributes"/>
  </xs:complexType>

  <xs:complexType name="StringViewType">
    <xs:annotation>
      <xs:documentation>Yerleşik metin görselleştiricisine gönderilen ifadenin değerini belirtin.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attributeGroup ref="CommonAttributes"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="IndexNodeType">
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attribute name="Condition" type="ConditionType" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:attributeGroup name="NameAttribute">
  <xs:attribute type="xs:string" name="Name" use="optional">
    <xs:annotation>
      <xs:documentation>
        Bu düğüme ait &lt;DisplayString&gt; söz diziminde isteğe bağlı bir ad belirtir. Atlanırsa,
        düğümün adı ağaç geçişinde öğenin dizini olur. Küme ayraçları içindeki ifadeler
        düğümün bağlamında değerlendirilir.
      </xs:documentation>
    </xs:annotation>
  </xs:attribute>    
  </xs:attributeGroup>
  
  <xs:complexType name="ListItemsNodeType">
    <xs:annotation>
      <xs:documentation>Bağlantılı liste düğümünün değerini gösteren ifade. Boş bırakılabilir veya bağlantılı liste düğümünün kendisine başvurmak için 'this' vardır. Bu ifade, bağlantılı liste düğümünün bağlamında değerlendirilir üst bağlantılı liste türünde değil.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attributeGroup ref="NameAttribute"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="TreeItemsNodeType">
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attribute name="Condition" type="ConditionType" use="optional"/>
        <xs:attributeGroup ref="NameAttribute"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="ItemType">
    <xs:annotation>
      <xs:documentation>Tek bir alt öğe belirtin. Yalnızca ifadeler ve rastgele olmayan dizeler kabul eder. İfade karmaşık türde değeri üretirse alt düğüm kendini kullanıcı tarafından genişletebilir.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attribute name="Name" type="StringType" use="required">
          <xs:annotation>
            <xs:documentation>Hata ayıklayıcı değişken penceresinde sütun adı altında gösterilecek şekilde alt öğe adı.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="CommonAttributes"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="ExpandedItemType">
    <xs:annotation>
      <xs:documentation>Alt öğesi geçerli düğümün alt öğesi olarak gösterilecek alt öğeyi belirtin. Genişletildiği zaman düz bir görünüm oluşturmak istediğinizde kullanın.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attributeGroup ref="CommonAttributes"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ArrayDirectionType">
    <xs:annotation>
      <xs:documentation>Çok boyutlu dizi indekslerinin nasıl alınmadığını belirtin. Ana satır dizileri için 'İleri' ve ana sütun diziler için 'Geri' kullan.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:enumeration value="Forward"/>
      <xs:enumeration value="Backward"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="IconType">
    <xs:restriction base="xs:normalizedString">
      <xs:enumeration value="Data">
        <xs:annotation>
          <xs:documentation>
            Öğenin genel verilerle ilişkili simgeyi kullanması gerektiğini belirtir.
          </xs:documentation>
        </xs:annotation>        
      </xs:enumeration>
      <xs:enumeration value="Method">
        <xs:annotation>
          <xs:documentation>
            Öğenin metot çağrılarıyla ilişkili simgeyi kullanması gerektiğini belirtir.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Property">
        <xs:annotation>
          <xs:documentation>
            Öğenin özellikler ile ilişkili simgeyi kullanması gerektiğini belirtir.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ExpandType">
    <xs:annotation>
      <xs:documentation>Hata ayıklayıcı penceresinde görünen türün bir değişkeni genişletildiğinde gösterilecek alt öğe listesini belirtin.</xs:documentation>
    </xs:annotation>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Item" minOccurs="0" maxOccurs="unbounded" type="ItemType"/>
      <xs:element name="ArrayItems" minOccurs="0" maxOccurs="unbounded" type="ArrayItemsType"/>
      <xs:element name="IndexListItems" minOccurs="0" maxOccurs="unbounded" type="IndexListItemsType"/>
      <xs:element name="LinkedListItems" minOccurs="0" maxOccurs="unbounded" type="LinkedListItemsType"/>
      <xs:element name="TreeItems" minOccurs="0" maxOccurs="unbounded" type="TreeItemsType"/>
      <xs:element name="ExpandedItem" minOccurs="0" maxOccurs="unbounded" type="ExpandedItemType"/>
      <xs:element name="Synthetic" minOccurs="0" maxOccurs="unbounded" type="SyntheticItemType"/>
      <xs:element name="CustomListItems" minOccurs="0" maxOccurs="unbounded" type="CustomListItemsType"/>
    </xs:choice>
    <xs:attribute name="HideRawView" type="xs:boolean">
      <xs:annotation>
        <xs:documentation>Bu nesne için "[Ham Görüntü]" düğümünün gizlenmesi gerekip gerekmediğini belirtir. Bu öznitelik varsayılan olarak 'false' değerine ayarlanmıştır.
        Bu ayar geçerli nesnenin ham görünüm düğümünün kullanıcıya görünür olmasını sağlar.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="CustomListItemsType">
    <xs:annotation>
      <xs:documentation>Bir koleksiyon aracılığıyla yineleme için diğer yöntemlerle görselleştirilemeyen özel bir mantık belirtir.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Variable" minOccurs="0" maxOccurs="unbounded" type="VariableType"></xs:element>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Size" minOccurs="1" maxOccurs="1" type="CustomListSizeType">
        </xs:element>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="Skip" minOccurs="1" maxOccurs="1" type="SkipType"></xs:element>
      </xs:choice>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="CustomListCode"/>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="CommonAttributes"/>
    <xs:attribute name="MaxItemsPerView" type="MaxItemsPerViewType" use="optional">
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="SkipType">
    <xs:annotation>
      <xs:documentation>
        Koleksiyondaki belirli öğe sayısının atlanma mantığını belirtir.  Atlama mantığı, kullanıcı izleme 
        penceresinde koleksiyon geçişinden istenen noktaya hızlıca geçiş yapmak üzere kaydırdığında çağrılır.  Atlama mantığından sonra
        denetim yürütmenin başına döner, ancak yineleme değişkenleri güncelleştirilen durumu yansıtacak şekilde değiştirilmiş olur.

        &lt;Skip&gt; öğesi koleksiyonun çok sayıda öğeyi hızlıca atlaması için isteğe bağlı performans iyileştirmesi sağlamak üzere
        bulunur.  Bir &lt;Skip&gt; öğesi belirlenmemişse, ifade değerlendiricisi istenen &lt;Item&gt; öğesi sayısı çalıştırılana dek atlama yapmak üzere geçiş
        mantığını yürütür.  Temel koleksiyonun veri yapısına bağlı olarak bu,
        önemli oranda gereksiz hesaplama içerebilir.
      </xs:documentation>
    </xs:annotation>

    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="CustomListCode_NoItem"/>
    </xs:choice>

    <xs:attribute name="Value" type="CppIdType" use="required">
      <xs:annotation>
        <xs:documentation>
          İmzalanmamış bir 32-bitlik tamsayı şeklindeki atlanacak öğe sayısını belirten değişkenin adı.  Bir &lt;Size&gt; öğesi belirtilmişse,
          ifade değerlendiricisi geçerli dizindeki koleksiyonunu sınırlarını aşacak hiçbir atlama değerinin geçişine izin vermez.
          &lt;Size&gt; öğesi belirtilmemişse atlama değeri rastgele bir sayı olabilir ve sınır denetimini yapmak
          &lt;Skip&gt;  öğesinin sorumluluğundadır.  İstenen tam sayı kadar atlamanın yapılamayacağı durumlarda &lt;Skip&gt; mantığı
          yürütmenin tamamlanabilmesi için değeri değişkeni atlayacağı şekilde değiştirmelidir. Bu değer asıl atlanan öğe sayısını içerir.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="CustomListSizeType">
    <xs:annotation>
      <xs:documentation>Koleksiyondaki toplam öğe sayısını belirtir.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attribute name="Condition" type="ConditionType" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:group name="CustomListCode_NoItem">
    <xs:choice>
      <!-- For the sake of simplifying implementation, I am not implementing declaring variables inside of an 'loop' block
           until I encounter a scenario that requires it.-->
      <!--<xs:element name="Variable" minOccurs="0" maxOccurs="unbounded" type="VariableType"></xs:element>-->
      <xs:element name="Loop" minOccurs="0" maxOccurs="unbounded" type="LoopType_NoItem"></xs:element>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="If" minOccurs="1" maxOccurs="1" type="IfType_NoItem"></xs:element>
        <xs:element name="Elseif" minOccurs="0" maxOccurs="unbounded" type="IfType_NoItem"></xs:element>
        <xs:element name="Else" minOccurs="0" maxOccurs="1" type="ElseType_NoItem"></xs:element>
      </xs:sequence>
      <xs:element name="Exec" minOccurs="0" maxOccurs="unbounded" type="ExecType"></xs:element>
      <xs:element name="Break" minOccurs="0" maxOccurs="unbounded" type="BreakType"></xs:element>
    </xs:choice>
  </xs:group>

  <xs:group name="CustomListCode">
    <xs:choice>
      <!-- For the sake of simplifying implementation, I am not implementing declaring variables inside of an 'loop' block
          until I encounter a scenario that requires it.-->
      <!--<xs:element name="Variable" minOccurs="0" maxOccurs="unbounded" type="VariableType"></xs:element>-->
      <xs:element name="Loop" minOccurs="0" maxOccurs="unbounded" type="LoopType"></xs:element>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="If" minOccurs="1" maxOccurs="1" type="IfType"></xs:element>
        <xs:element name="Elseif" minOccurs="0" maxOccurs="unbounded" type="IfType"></xs:element>
        <xs:element name="Else" minOccurs="0" maxOccurs="1" type="ElseType"></xs:element>
      </xs:sequence>
      <xs:element name="Exec" minOccurs="0" maxOccurs="unbounded" type="ExecType"></xs:element>
      <xs:element name="Break" minOccurs="0" maxOccurs="unbounded" type="BreakType"></xs:element>
      <xs:element name="Item" minOccurs="0" maxOccurs="unbounded" type="CustomListItemType"></xs:element>
    </xs:choice>
  </xs:group>

  <xs:attributeGroup name="CustomListCode_Attributes">
    <xs:attribute name="Condition" type="ConditionType" use="optional">
      <xs:annotation>
        <xs:documentation>Bu öğenin veya iç öğelerin yürütülüp yürütülmeyeceğini denetleyen koşul</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="CustomListCode_Attributes_NoCondition"/>
  </xs:attributeGroup>

  <!-- Defines attributes that do on custom list code elements besides the condition.  Currently, this is empty, but maintaining the group
  as a placeholder in case we decide to add something to it later. -->
  <xs:attributeGroup name="CustomListCode_Attributes_NoCondition">
  </xs:attributeGroup>

  <xs:complexType name="LoopType_NoItem">
    <xs:annotation>
      <xs:documentation>Bir &lt;Break&gt; öğesiyle karşılaşılana veya ifade değerlendirmesi başarısız olana dek yalnızca birden fazla kez yürütülecek yönergeler bloğunu belirler.</xs:documentation>
    </xs:annotation>

    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="CustomListCode_NoItem"/>
    </xs:choice>

    <xs:attributeGroup ref="CustomListCode_Attributes"/>
  </xs:complexType>


  <xs:complexType name="LoopType">
    <xs:annotation>
      <xs:documentation>Bir &lt;Break&gt; öğesiyle karşılaşılana veya ifade değerlendirmesi başarısız olana dek yalnızca birden fazla kez yürütülecek yönergeler bloğunu belirler.</xs:documentation>
    </xs:annotation>

    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="CustomListCode"/>
    </xs:choice>

    <xs:attributeGroup ref="CustomListCode_Attributes"/>
  </xs:complexType>

  <xs:complexType name="IfType_NoItem">
    <xs:annotation>
      <xs:documentation>Yalnızca koşulun true olması durumunda yürütülecek yönergeler bloğunu belirler.</xs:documentation>
    </xs:annotation>

    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="CustomListCode_NoItem"/>
    </xs:choice>

    <xs:attributeGroup ref="CustomListCode_Attributes"/>
  </xs:complexType>

  <xs:complexType name="IfType">
    <xs:annotation>
      <xs:documentation>Yalnızca koşulun true olması durumunda yürütülecek yönergeler bloğunu belirler.</xs:documentation>
    </xs:annotation>

    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="CustomListCode"/>
    </xs:choice>

    <xs:attributeGroup ref="CustomListCode_Attributes"/>
  </xs:complexType>

  <xs:complexType name="ElseType_NoItem">
    <xs:annotation>
      <xs:documentation>Yalnızca koşulun true olması durumunda yürütülecek yönergeler bloğunu belirler.</xs:documentation>
    </xs:annotation>

    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="CustomListCode_NoItem"/>
    </xs:choice>

    <xs:attributeGroup ref="CustomListCode_Attributes_NoCondition"/>
  </xs:complexType>

  <xs:complexType name="ElseType">
    <xs:annotation>
      <xs:documentation>Yalnızca koşulun true olması durumunda yürütülecek yönergeler bloğunu belirler.</xs:documentation>
    </xs:annotation>

    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="CustomListCode"/>
    </xs:choice>

    <xs:attributeGroup ref="CustomListCode_Attributes_NoCondition"/>
  </xs:complexType>

  <xs:complexType name="VariableType">
    <xs:annotation>
      <xs:documentation>
        &lt;CustomListItems&gt; bloğuna sahip sonraki ifadelerde kullanılacak değişkeni belirtir.
      </xs:documentation>
    </xs:annotation>
    <xs:attribute name="Name" type="CppIdType" use="required">
      <xs:annotation>
        <xs:documentation>Değişkenin adı.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="InitialValue" type="StringType" use="required">
      <xs:annotation>
        <xs:documentation>
          Değişkenin ilk değerini değerlendiren ifade.
          Bu ifade aynı zamanda değişkenin türünü de belirtir.  İlk değer ifadeleri önceden tanımlanmış diğer ifadeleri kullanabilir.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="ExecType">
    <xs:annotation>
      <xs:documentation>
        Tek bir ifade yürütür.  İfade, nesnenin bağlamında yürütülür, ancak yineleme değişkenleri kullanabilir.
        İfade aynı zamanda yineleme değişkenlerini değiştirebilir, ancak başka bir yan etkiye izin verilmez.
      </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attributeGroup ref="CustomListCode_Attributes"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="CustomListItemType">
    <xs:annotation>
      <xs:documentation>Belirtilen ifadenin değerlendirilmesiyle elde edilen alt öğeyi oluşturur.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attributeGroup ref="CustomListCode_Attributes"/>
        <xs:attribute name="Name" type="xs:string" use="optional">
          <xs:annotation>
            <xs:documentation>
              Öğe için kullanılacak isteğe bağlı bir ad belirtir.  Ad, &lt;DisplayString&gt; sözdiziminde sağlanır ve ekli ifadeler içerebilir.
              Ad belirtilmemişse "[i]" biçiminde bir varsayılan ad kullanılır. Buradaki 'i', öğenin döndürüldüğü sırayı temsil eden dizindir.
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="BreakType">
    <xs:annotation>
      <xs:documentation>En içteki &lt;Loop&gt; öğesini keser.  Döngü dışındaki bir &lt;Break&gt; öğesi koleksiyon yinelemesini sonlandırır.</xs:documentation>
    </xs:annotation>
    <xs:attributeGroup ref="CustomListCode_Attributes"/>
  </xs:complexType>

  <xs:complexType name="SyntheticItemType">
    <xs:annotation>
      <xs:documentation>Değeri bir ifade tarafından yedeklenmeyen alt öğe belirtin. Öğe değeri 'DisplayString' öğesi kullanılarak belirtilebilir. Öğenin alt öğeleri 'Expand' öğesi kullanılarak belirtilebilir.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="CustomVisualizer" type="CustomVisualizerType"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="DisplayString" type="DisplayStringType"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="StringView" type="StringViewType"/>
      <xs:element minOccurs="0" name="Expand" type="ExpandType"/>
    </xs:sequence>
    <xs:attribute name="Name" type="StringType" use="required">
      <xs:annotation>
        <xs:documentation>Hata ayıklayıcı penceresinde ad sütunu altında göründüğü gibi alt öğenin adı.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="Expression" type="StringType" use="optional">
      <xs:annotation>
        <xs:documentation>Kullanıcı, izini istediğinde öğenin değerini getirmek için kullanılan ifade komut satırında 'Add watch' komutu kullanılarak ayrılabilir.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup ref="CommonAttributes"/>
  </xs:complexType>

  <xs:complexType name="ValuePointerType">
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attribute name="Condition" type="ConditionType" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="SizeType">
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attributeGroup ref="CommonAttributes"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="ArrayItemsType">
    <xs:annotation>
      <xs:documentation>Bir değişkenin içeriğinin dizi görünümünü belirtir. Veri öğelerini bellekte bitişik olarak kabul eder.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Direction" type="ArrayDirectionType"/>
      <xs:element minOccurs="0" maxOccurs="1" name="Rank" type="StringType">
        <xs:annotation>
          <xs:documentation>Dizi derecesini belirtin.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="Size" type="SizeType">
        <xs:annotation>
          <xs:documentation>Her dizinin boyutunun büyüklüğünü belirtin. Çok boyutlu diziler için örtülü $ parametresi kullanan bir ifade belirtebilirsiniz. Parametre, bu boyuttaki dizinin boyutunu bulmak için boyut dizin ile değiştirilir.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="LowerBound" type="StringType">
        <xs:annotation>
          <xs:documentation>Her dizinin boyutunun alt değerini belirtin. Çok boyutlu diziler için örtülü $ parametresi kullanan bir ifade belirtebilirsiniz. Parametre, bu boyuttaki dizinin alt değerini bulmak için boyut dizin ile değiştirilir.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="ValuePointer" type="ValuePointerType">
        <xs:annotation>
          <xs:documentation>Dizinin ilk öğesini gösteren ifadeyi belirtin. İfade, void* olmayan öğe türünün bir işaretçisi olmalıdır.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attributeGroup ref="CommonAttributes"/>
  </xs:complexType>

  <xs:complexType name="IndexListItemsType">
    <xs:annotation>
      <xs:documentation>Bir değişkenin dizi görünümünün daha genelleştirilmiş bir formunu belirtin. Veri elemanlarınız bellekte bitişik olmadığında ve veri öğelerinin dizinini hesaplamanız gerektiğinde kullanın.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="Size" type="SizeType">
        <xs:annotation>
          <xs:documentation>Dizin listesinin boyutunu belirtin.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="ValueNode" type="IndexNodeType">
        <xs:annotation>
          <xs:documentation>İ'ninci öğeyi gösteren örtülü $ parametresini kullanan ifadeyi belirtin.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attributeGroup ref="CommonAttributes"/>
  </xs:complexType>

  <xs:complexType name="LinkedListItemsType">
    <xs:annotation>
      <xs:documentation>Bir değişkenin içeriğinin bağlantılı liste görünümünü belirtin.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Size" type="SizeType">
        <xs:annotation>
          <xs:documentation>Bağlantılı listedeki öğelerin sayısını belirtir. Birden çok boyut öğesi belirtilirse, true koşuluna sahip (veya koşulu olmayan) ilk boyut öğesi
          boyutu belirler. Boyut belirtilmezse (veya tüm boyut öğeleri false koşuluna sahipse), hata ayıklayıcı boyutu bulmak için listeyi gezer. Bir boyut sağlamak hata ayıklayıcının
          performansını iyileştireceğinden, mümkün olduğunda natvis girişlerinin bağlantılı listeler için bir boyut belirtmesi önerilir.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" name="HeadPointer" type="StringType">
        <xs:annotation>
          <xs:documentation>Bağlantılı listenin ilk düğümünü gösteren ifade.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" name="NextPointer" type="StringType">
        <xs:annotation>
          <xs:documentation>Sonraki öğeyi gösteren ifade. Bu ifade, bağlantılı liste düğümünün bağlamında değerlendirilir üst bağlantılı liste türünde değil.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" name="ValueNode" type="ListItemsNodeType">
      </xs:element>
    </xs:sequence>
    <xs:attributeGroup ref="CommonAttributes"/>
  </xs:complexType>

  <xs:complexType name="TreeItemsType">
    <xs:annotation>
      <xs:documentation>Bir değişkenin içeriğinin ağaç görünümünü belirtin.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Size" type="StringType">
        <xs:annotation>
          <xs:documentation>Ağaç boyutu.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" name="HeadPointer" type="StringType">
        <xs:annotation>
          <xs:documentation>Ağacın başını gösteren ifade.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" name="LeftPointer" type="StringType">
        <xs:annotation>
          <xs:documentation>Ağaç düğümünün sol alt öğesini gösteren ifade. Bu ifade, ağaç düğümü bağlamında değerlendirilir üst tür bağlamında değil.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" name="RightPointer" type="StringType">
        <xs:annotation>
          <xs:documentation>Ağaç düğümünün sağ alt öğesini gösteren ifade. Bu ifade, ağaç düğümü bağlamında değerlendirilir üst tür bağlamında değil.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" name="ValueNode" type="TreeItemsNodeType">
        <xs:annotation>
          <xs:documentation>Ağaç düğümünün değerini gösteren ifade. Boş bırakılabilir veya ağaç düğümünün kendisine başvurmak için 'this' vardır. Bu ifade, ağaç düğümünün bağlamında değerlendirilir üst ağaç türünde değil.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attributeGroup ref="CommonAttributes"/>
  </xs:complexType>

  <xs:complexType name="UIVisualizerItemType">
    <xs:annotation>
      <xs:documentation>Bu türün nesnelerini tanıtacak UI görselleştiricisini belirtin. UI görselleştiricisi natvis dosyasında önceden tanımlanmış olmalıdır.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="ServiceId" type="GuidType" use="required">
          <xs:annotation>
            <xs:documentation>Görselleştiricinin GUID servisi.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="Id" type="xs:int" use="required">
          <xs:annotation>
            <xs:documentation>Görselleştirici kimliğini belirtin. Ayırt etmek için görselleştirici servisi tarafından sağlanan çoklu izleyiciyi kullanın.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="FavoritesItemType">
    <xs:annotation>
      <xs:documentation>Tür için sık kullanılan öğelerin koleksiyonunu belirtir. Bu değerler öğenin ilk alt öğesi olarak görünür ve varsayılan görüntü dizesinde gösterilir.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Favorite" type="FavoriteItemType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="FavoriteItemType">
    <xs:annotation>
      <xs:documentation>Tür için sık kullanılan bir öğeyi belirtir.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:string"/>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="MostDerivedObjectType">
    <xs:annotation>
      <xs:documentation>
        Geçerli nesne sonucunu veren ve nesnenin en çok türetilen türüne atanan bir ifadeyi belirtir.  
        
        Birçok durumda, hata ayıklayıcı bir nesnenin en çok türetilen türünü otomatik olarak belirleyebilir ve böylece &lt;MostDerivedType&gt; 
        öğesinin kullanılmazı gerekmez. Bir nesnenin en çok türetilen türünün otomatik olarak belirlenmesi için, nesnenin, derleyici tarafından oluşturulmuş sanal işlev tablosu içeren bir
        C++ sınıfı örneği olması gerekir. Bu, çoğu sınıf hiyerarşisi için yeterlidir; ancak, sanal işlev içermeyen bir sınıf hiyerarşisiyle çalışırken
        veya sanal işlev tablosu, uygulama kodu tarafından el ile oluşturulduğunda
        özel mantık gerekli olabilir.
      </xs:documentation>
    </xs:annotation>
    
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attributeGroup ref="CommonAttributes"/>
        <xs:attribute name="IgnoreVTable" type="xs:boolean" use="optional">
          <xs:annotation>
            <xs:documentation>
              True ise, nesnenin en çok türetilen türünün, sağlanan ifadenin statik türü olduğunu gösterir. Hata ayıklayıcı varsayılan olarak,
              sağlanan en çok türetilen tür ifadelerinin en çok türetilen türünü hesaplamak için vtable'ları kullanır. Bu seçenek
              yalnızca, uygulama kodu vtable'ları, hata ayıklayıcının anlamadığı özel mantığı kullanarak oluşturduğunda kullanılmalıdır.
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="SmartPointerUsage">
    <xs:annotation>
      <xs:documentation>Akıllı işaretçinin söz dizimsel olarak nasıl kullanılabileceğini belirtir.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:enumeration value="Minimal">
        <xs:annotation>
          <xs:documentation>
            Akıllı işaretçinin söz dizimsel olarak yalnızca başvuru kaldırma ve karşılaştırma amacıyla kullanılabileceğini belirtir.
            Aşağıdaki aşırı yüklenmiş işleçleri tanımlar:
            - operator*()    (başvuru kaldırma)
            - operator-&gt;()   (başvurusu kaldırılmış değerin erişim alanı)
            - operator==()   (ham işaretçi ile veya aynı türün başka bir akıllı işaretçisi ile karşılaştırma)
            - operator!=()   (ham işaretçi ile veya aynı türün başka bir akıllı işaretçisi ile karşılaştırma)
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Indexable">
        <xs:annotation>
          <xs:documentation>
            Akıllı işaretçinin söz dizimsel olarak başvuru kaldırma, karşılaştırma ve dizin oluşturma amacıyla kullanılabileceğini belirtir
            Aşağıdaki aşırı yüklenmiş işleçleri tanımlar:
            - operator+()  (size_t türünden bir farkı toplama)
            - operator-()  (size_t türünden bir farkı çıkarma)
            - operator[]   (size_t türünden bir farkı toplama ve başvuru kaldırma)
            - SmartPointerUsage="Minimal" tarafından desteklenen tüm işleçler
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Full">
        <xs:annotation>
          <xs:documentation>
            Akıllı işaretçinin temel işaretçiye dönüştürme işleci içereceğini belirtir. Temel işaretçinin dildeki tüm geçerli kullanımları
            dönüştürme işleci aracılığıyla kullanılabilir.  Akıllı işaretçiye doğrudan atama yapılması hala yasaktır;
            bir ifadedeki iç işaretçiyi değiştirirken bunu açık olarak yapmanız gerekir.
          </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="SmartPointerType">
    <xs:annotation>
      <xs:documentation>
        Verilen türün akıllı işaretçi olduğunu belirtir. Bu öğenin içindeki metin temel işaretçiyi değerlendiren ifadeyi belirtir.
        
        &lt;SmartPointer&gt; öğesinin aşağıdaki etkileri vardır:
          - Alternatif bir &lt;DisplayString&gt; öğesi sağlanmazsa (veya tüm &lt;DisplayString&gt; öğelerinin başarısız olmuş koşulları varsa), temel işaretçi görünen dize olur
          - Alternatif bir &lt;StringView&gt; öğesi sağlanmazsa (veya tüm &lt;StringView&gt; öğelerinin başarısız olmuş koşulları varsa), temel işaretçi, varsa dize görünümü olur.
          - Alternatif bir &lt;Expand&gt; öğesi sağlanmazsa akıllı işaretçi genişletmesi, temel işaretçinin genişletmesi olur.
          - Akıllı işaretçi sınıfı, &lt;Usage&gt; özniteliği tarafından belirlenen aşırı yüklenmiş işleçleri de destekler. Aşağıdakini belirterek bu davranışı iptal edebilirsiniz 
              'DefaultExpansion="false"'
      </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="StringType">
        <xs:attributeGroup ref="CommonAttributes_NoCondition"/>
        <xs:attribute name="Usage" type="SmartPointerUsage" use="required">
          <xs:annotation>
            <xs:documentation>Bu akıllı işaretçi nesnesinin hangi işleç bileşimlerini desteklediğini belirtir.              
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="DefaultExpansion" type="xs:boolean" use="optional">
          <xs:annotation>
            <xs:documentation>
              True ise ve bir genişletme öğesi sağlanmamışsa, temel işaretçinin genişletmesine dayalı olarak bir varsayılan
              genişletme sağlanır. False ise akıllı işaretçiyi temel alan bir &lt;Expand&gt; öğesi otomatik
              olarak oluşturulmaz. Bu öznitelik yoksa, varsayılan değer 'true' olur.
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="VisualizerType">
    <xs:annotation>
      <xs:documentation>Bir tür hata ayıklayıcı görünümünü özelleştiren bir görselleştiricisi girdisini belirtin.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="AlternativeType" type="AlternativeTypeType"/>
      <xs:element minOccurs="0" maxOccurs="1" name="Version" type="VersionType"/>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Intrinsic" type="IntrinsicType"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="MostDerivedType" type="MostDerivedObjectType"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="CustomVisualizer" type="CustomVisualizerType"/>
          <xs:element minOccurs="0" maxOccurs="1" name="SmartPointer" type="SmartPointerType"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="DisplayString" type="DisplayStringType"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="StringView" type="StringViewType"/>
          <xs:element minOccurs="0" name="Expand" type="ExpandType"/>
          <xs:element minOccurs="0" maxOccurs="1" name="Favorites" type="FavoritesItemType"/>
        </xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="UIVisualizer" type="UIVisualizerItemType"/>
      </xs:choice>
    </xs:sequence>
    <xs:attribute name="Name" type="TypeNameType" use="required"/>
    <xs:attributeGroup ref="ViewConstraints"/>
    <xs:attribute name="Priority" type="PriorityType"/>
    <xs:attribute name="Inheritable" type="xs:boolean" use="optional">
      <xs:annotation>
        <xs:documentation>
          Bu görselleştirici, verilen türden türetilmiş sınıfların nesneleri tarafından kullanılabiliyorsa true, görselleştiricinin etkinleşebilmesi için nesnenin doğrudan bu türde olması gerekiyorsa false.
          Varsayılan true'dur.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="PriorityType">
    <xs:annotation>
      <xs:documentation>Bu girişe tür eşleşmesi için atanacak, isteğe bağlı bir öncelik belirtir. Belirli bir dosyanın veya dizinin içinde bulunan yüksek öncelikli girişler
      ilk önce denetlenir. Öncelik belirtmeyen &lt;Type&gt; girişleri, varsayılan öncelik olan "Orta" değerini alır. Öncelik belirtmeyen &lt;AlternativeType&gt; girişleri,
      kapsayan &lt;Type&gt; öğesinin önceliğini devralır. Öncelik yalnızca, diğer tüm ayırt etme yöntemlerinin kullanılamaz olduğu durumlarda tür eşleşmesini netleştirmek için kullanılır.
      Örneğin, daha belirli şablon örneği oluşturma işlemleri, modül kısıtlamaları veya görüntüleme kısıtlamaları içeren girişlere, belirtilen her türlü öncelik değerinden bağımsız olarak öncelik tanınır.  
      Benzer şekilde, öncelikten bağımsız olarak, yüklü bir projenin parçası olan natvis dosyalarına, kullanıcı natvis dizinindeki dosyalar arasında her zaman öncelik tanınır ve 
      dolayısıyla bu dosyalar, sistem genelindeki natvis dizinindeki dosyalar arasında da öncelikli olur.   
      
      Aynı önceliğe sahip iki giriş varsa ve bunlar başka türlü ayırt edilemiyorsa, hangisinin kullanılacağı belirtilmemiştir.
      </xs:documentation>
    </xs:annotation>
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Low"/>
          <xs:enumeration value="MediumLow"/>
          <xs:enumeration value="Medium"/>
          <xs:enumeration value="MediumHigh"/>
          <xs:enumeration value="High"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:complexType name="UIVisualizerType">
    <xs:annotation>
      <xs:documentation>Bir nesneyi görüntülemek için kendi arabirimini oluşturan bir UI görselleştiricisinin ayrıntılarını belirtin. Bir tür için görselleştirici girdisinin, türü UI görselleştiricisi ile ilişkilendirilen bir UI görselleştiricisine başvurması gerekiyor.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="ServiceId" type="GuidType" use="required">
          <xs:annotation>
            <xs:documentation>Görselleştiricisi servisi GUID'i belirtin. Servis IVsCppDebugUIVisualizer arabirimini uygulayan bir Visual Studio paketi tarafından sağlanmalıdır. Kullanıcı bu görsel servisi istediğinde hata ayıklayıcı paketi yükler.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="Id" type="xs:int" use="required">
          <xs:annotation>
            <xs:documentation>Görselleştirici kimliğini belirtin. Ayırt etmek için görselleştirici servisi tarafından sağlanan çoklu izleyiciyi kullanın.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="MenuName" type="xs:string" use="required">
          <xs:annotation>
            <xs:documentation>Değişken için UI görselleştiricisi listesinde gösterilen adı belirtin.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="Description" type="xs:string" use="optional">
          <xs:annotation>
            <xs:documentation>Bu UI görselleştiricisi için açıklama belirtin.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="HResultType">
    <xs:annotation>
      <xs:documentation>HRESULT hata ayıklayıcı görünümünü özelleştiren bir görselleştirici girdisini belirtin.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="AlternativeHResult" type="AlternativeHResultType">
        <xs:annotation>
          <xs:documentation>Aynı görselleştiriciyi paylaşan diğer HResult türleri.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="1" maxOccurs="1" name="HRValue" type="StringType">
        <xs:annotation>
          <xs:documentation>Özelleştirilecek HRESULT değeri 32 bit.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" maxOccurs="1" name="HRDescription" type="StringType">
        <xs:annotation>
          <xs:documentation>Hata ayıklayıcı penceresinde gösterilen bu HRESULT değeri için açıklama.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Name" type="StringType" use="required">
      <xs:annotation>
        <xs:documentation>Hata ayıklayıcı penceresinde gösterilen HRESULT değerinin adı.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:complexType name="LocalizedStringType">
    <xs:annotation>
      <xs:documentation>
        Dizeleri kabul eden natvis öğeleri tarafından başvurulabilen bir yerelleştirilmiş dize kaynağını tanımlar (örn. DisplayString, Item öğesinin Name özniteliği).
        Yerelleştirilmiş dizeye başvurmak için @&lt;id&gt;; biçimini kullanın (örn. @1001;)
      </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="Id" use="required">
          <xs:annotation>
            <xs:documentation>Yerelleştirilmiş dizenin kimliği. Yerelleştirilmiş dizeye başvurmak için @&lt;id&gt;; biçimi kullan.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
              <xs:minInclusive value="1"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="LocalizedStringsType">
    <xs:annotation>
      <xs:documentation>
        Natvis öğeleri tarafından başvurulan yerelleştirilmiş dizelerin listesini belirtin. Ana dosya ile aynı isimdeki uydu natvis dosyalarındaki yerelleştirilmiş dizeleri belirtin
        ve ana natvis dosyasının yanındaki yerel bir özgün klasöre dağıtın. Hata ayıklayıcı yerelleştirilmiş kaynakları uygun bir uydu dosyasından yükleyecek.
        Yerel için uydu dosyası olmadığında varsayılan olarak depolanacak ana natvis dosyasındaki yerelleştirilmiş dizeleri belirtin.
      </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="unbounded" name="LocalizedString" type="LocalizedStringType"/>
    </xs:sequence>
  </xs:complexType>

  <!-- Definition of complex elements-->

  <xs:element name="AutoVisualizer">
    <xs:annotation>
      <xs:documentation>Natvis dosyasının kök öğesi.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="Version" type="VersionType">
          <xs:annotation>
            <xs:documentation>Açıkça belirtilmediğinde bu dosyadaki modül adını ve sürümünü kullanacak tüm görselleştiriciler için eşleşen bir modül adı ve sürümü belirtin.</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element minOccurs="0" maxOccurs="1" name="LocalizedStrings" type="LocalizedStringsType"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="UIVisualizer" type="UIVisualizerType"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Type" type="VisualizerType"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="HResult" type="HResultType"/>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Intrinsic" type="IntrinsicType"/>
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
