<?xml version="1.0" encoding="utf-8"?>
<!--
  <copyright file="tag.xsd" company="Outercurve Foundation">
    Copyright (c) 2004, Outercurve Foundation.
    This software is released under Microsoft Reciprocal License (MS-RL).
    The license and further copyright text can be found in the file
    LICENSE.TXT at the root directory of the distribution.
  </copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
         xmlns:html="http://www.w3.org/1999/xhtml"
    targetNamespace="http://schemas.microsoft.com/wix/TagExtension"
              xmlns="http://schemas.microsoft.com/wix/TagExtension">
    <xs:annotation>
        <xs:documentation>
            The source code schema for the Windows Installer XML Toolset Software Id Tag Extension.
        </xs:documentation>
    </xs:annotation>

    <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />

  <xs:element name="Tag">
      <xs:annotation>
          <xs:documentation>
              This extension implements the ISO/IEC 19770-2 specification. A SWID tag file
              will be generated an inserted into the Product or Bundle.
          </xs:documentation>
          <xs:appinfo>
              <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Bundle" />
              <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
          </xs:appinfo>
      </xs:annotation>
      <xs:complexType>
          <xs:attribute name="Name" type="xs:string">
              <xs:annotation>
                  <xs:documentation>
                    Name to use in the filename for the software id tag. By default the filename
                    uses the Bundle/@Name or Product/@Name. If the bundle name or product name contains
                    invalid filename characters such as ":" or "?", use this attribute to provide
                    a valid filename.
                  </xs:documentation>
              </xs:annotation>
          </xs:attribute>
          <xs:attribute name="Regid" type="xs:string" use="required">
              <xs:annotation>
                  <xs:documentation>
                    The regid for the software id tag. A regid follows the format:  "regid" + "."
                    + YYYY-MM + "." + reverse domain order. The YYYY-MM is the year and month the
                    domain was first owned. For example: "regid.1995-08.com.example".
                  </xs:documentation>
              </xs:annotation>
          </xs:attribute>
          <xs:attribute name="Feature" type="xs:string">
              <xs:annotation>
                  <xs:documentation>Optional attribute to explicitly set the Feature when defining the software id tag
                  in a Product. By default the software id tag will always be installed by a top-level hidden feature.
                  It is recommended to <html:strong>not</html:strong> set this attribute.</xs:documentation>
              </xs:annotation>
          </xs:attribute>
          <xs:attribute name="Licensed" type="YesNoTypeUnion">
            <xs:annotation>
              <xs:documentation>Indicates whether the software requires a license. The default is
              "no". </xs:documentation>
            </xs:annotation>
          </xs:attribute>
        <xs:attribute name="Type" type="TagTypeUnion">
          <xs:annotation>
            <xs:documentation>
              Defines the type of software tag being defined. One of the following values may be used: "group",
              "application", "patch", or "component". The default is "application" when the Tag element is a child of
              the Product element. The default is "group" or "application" when the Tag element is under a Bundle element
              based on the contents of the bundle's chain. The Bundle/Tag@Type will be "application" unless there are one
              or more packages that define a software Tag@Type of "application" or "group".
            </xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:complexType>
  </xs:element>

  <xs:element name="TagRef">
    <xs:annotation>
      <xs:documentation>
        Allows an ISO/IEC 19770-2 SWID tag file to be referenced in a Patch.
      </xs:documentation>
      <xs:appinfo>
        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="PatchFamily" />
      </xs:appinfo>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name="Regid" type="xs:string" use="required">
        <xs:annotation>
          <xs:documentation>
            The regid for the software id tag. A regid follows the format:  "regid" + "."
            + YYYY-MM + "." + reverse domain order. The YYYY-MM is the year and month the
            domain was first owned. For example: "regid.1995-08.com.example".
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="TagTypeUnion">
    <xs:annotation>
      <xs:documentation>Values of this type will be "application", "component", "feature", "group", or "patch".</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="TagType PreprocessorVariables"/>
  </xs:simpleType>

  <xs:simpleType name="TagType">
    <xs:annotation>
      <xs:documentation>Values of this type will be "application", "component", "feature", "group", or "patch".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="application" />
      <xs:enumeration value="component" />
      <xs:enumeration value="feature" />
      <xs:enumeration value="group" />
      <xs:enumeration value="patch" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="YesNoTypeUnion">
    <xs:annotation>
      <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="YesNoType PreprocessorVariables"/>
  </xs:simpleType>

  <xs:simpleType name="YesNoType">
    <xs:annotation>
      <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="no" />
      <xs:enumeration value="yes" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="PreprocessorVariables">
    <xs:annotation>
      <xs:documentation>A type that represents that 1 or more preprocessor variables (as they appear in sources on disk, before preprocessor has run).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="(\$\(\w+\.(\w|[.])+\))+" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
