<?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>Specifies the name of a function that should be considered non-user code.  This may contain wildcards.</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>Specifies the name of a module that should be considered non-user code.  This may contain wildcards and may either specify a file name or a full path.</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>Specifies the name of a source file that should be considered non-user code.  This may contain wildcards and may either specify a file name or a full path.</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>