<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/vstudio/debugger/jmc/2013" xmlns="http://schemas.microsoft.com/vstudio/debugger/jmc/2013" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:complexType name="FunctionType">
    <xs:annotation>
      <xs:documentation>Задает имя функции, которая должна считаться непользовательским кодом. Может содержать подстановочные знаки.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="Module" type="xs:string" use="optional"/>
    <xs:attribute name="Company" type="xs:string" use="optional"/>
    <xs:attribute name="ExceptionImplementation" type="xs:boolean" use="optional"/>
  </xs:complexType>

  <xs:complexType name="ModuleType">
    <xs:annotation>
      <xs:documentation>Задает имя модуля, который должен считаться непользовательским кодом. Он может содержать подстановочные знаки и задавать имя файла или полный путь.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="Name" type="xs:string" use="optional"/>
    <xs:attribute name="Company" type="xs:string" use="optional"/>
  </xs:complexType>

  <xs:complexType name="FileType">
    <xs:annotation>
      <xs:documentation>Задает имя исходного файла, который должен считаться непользовательским кодом. Он может содержать подстановочные знаки и задавать имя файла или полный путь.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="Name" type="xs:string" use="required"/>
    <xs:attribute name="Module" type="xs:string" use="optional"/>
    <xs:attribute name="Company" type="xs:string" use="optional"/>
  </xs:complexType>

  <xs:element name="NonUserCode">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element minOccurs="0" maxOccurs="unbounded" name="Module" type="ModuleType"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="File" type="FileType"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="Function" type="FunctionType"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
