<?xml version="1.0" encoding="utf-8"?>
<schema targetNamespace="http://schemas.microsoft.com/maml/2004/10"
    xmlns:doc="http://schemas.microsoft.com/maml/internal"
    xmlns:maml="http://schemas.microsoft.com/maml/2004/10"
    xmlns="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    blockDefault="#all"
    xml:lang="en">
  <!-- Schema documentation -->
  <annotation>
    <documentation>This schema describes MAML (Microsoft Assistance Markup Language). MAML is intended for software documentation. In particular, MAML is intended to accommodate the needs of Microsoft documentation.</documentation>
    <documentation>The schema is broken into three main areas: end user, developer and IT Pro. These areas represent the main categories of Microsoft documentation.</documentation>
    <documentation>The namespace uri for this version of MAML is: http://schemas.microsoft.com/maml/2004/10.</documentation>
    <documentation>Each backwards-incompatible revision to MAML will require that the date fields be appropriately incremented in uri of the updated version of the MAML schema.</documentation>
  </annotation>
  <include schemaLocation="hierarchy.xsd"/>
  <include schemaLocation="baseConditional.xsd"/>
  <include schemaLocation="inline.xsd"/>
  <include schemaLocation="block.xsd"/>
  <include schemaLocation="structure.xsd"/>
  <!-- ***************************************************************** -->
  <element name="remarks" type="maml:sectionType">
    <annotation>
      <documentation>Contains a detailed discussion of the current item.</documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
      </appinfo>
    </annotation>
  </element>
  <element name="buildInstructions" type="maml:sectionType">
    <annotation>
      <documentation>Contains instructions for building a code example.</documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
      </appinfo>
    </annotation>
  </element>
  <element name="robustProgramming" type="maml:sectionType">
    <annotation>
      <documentation>Contains a discussion of error handling and other related issues.</documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
      </appinfo>
    </annotation>
  </element>
  <element name="security" type="maml:sectionType">
    <annotation>
      <documentation>Contains a discussion of security issues.</documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
      </appinfo>
    </annotation>
  </element>
  <group name="codeExampleContentsGroup">
    <sequence>
      <element ref="maml:title" minOccurs="0" maxOccurs="1"/>
      <element ref="maml:introduction"/>
      <group ref="maml:codeGroup" minOccurs="1" maxOccurs="unbounded"/>
      <!-- This is to allow a single example with equivalent code in multiple languages -->
      <element ref="maml:buildInstructions" minOccurs="0"/>
      <element ref="maml:robustProgramming" minOccurs="0"/>
      <element ref="maml:security" minOccurs="0"/>
      <element ref="maml:remarks" minOccurs="0"/>
    </sequence>
  </group>
  <complexType name="codeExampleType" mixed="false">
    <choice>
      <group ref="maml:codeExampleContentsGroup"/>
    </choice>
  </complexType>
  <element name="codeExample" type="maml:codeExampleType">
    <annotation>
      <documentation>Contains a discussion of a code example.</documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
      </appinfo>
    </annotation>
  </element>
  <complexType name="codeExamplesType" mixed="false">
    <sequence>
      <element ref="maml:codeExample" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
  <element name="codeExamples" type="maml:codeExamplesType">
    <annotation>
      <documentation>Contains a collection of codeExample elements.</documentation>
      <appinfo>
        <doc:localizable>n/a</doc:localizable>
      </appinfo>
    </annotation>
  </element>
</schema>
