<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:upm="UnityEditor.PackageManager.UI" xmlns:engine="UnityEngine.Experimental.UIElements" xmlns:editor="UnityEditor.Experimental.UIElements" elementFormDefault="qualified" targetNamespace="UnityEngine.Experimental.UIElements" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="UXMLType">
    <xs:complexContent mixed="false">
      <xs:restriction base="xs:anyType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="engine:VisualElement" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="UXML" type="engine:UXMLType" />
  <xs:simpleType name="VisualElement_pickingMode_Type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Position" />
      <xs:enumeration value="Ignore" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VisualElementType">
    <xs:complexContent mixed="false">
      <xs:restriction base="xs:anyType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="engine:VisualElement" />
        </xs:sequence>
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="VisualElement" type="engine:VisualElementType" />
  <xs:complexType name="IMGUIContainerType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="0" name="focusIndex" type="xs:int" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="IMGUIContainer" substitutionGroup="engine:VisualElement" type="engine:IMGUIContainerType" />
  <xs:complexType name="ImageType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Image" substitutionGroup="engine:VisualElement" type="engine:ImageType" />
  <xs:complexType name="LabelType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="" name="text" type="xs:string" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Label" substitutionGroup="engine:VisualElement" type="engine:LabelType" />
  <xs:complexType name="RepeatButtonType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="" name="text" type="xs:string" use="optional" />
        <xs:attribute default="0" name="delay" type="xs:long" use="optional" />
        <xs:attribute default="0" name="interval" type="xs:long" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="RepeatButton" substitutionGroup="engine:VisualElement" type="engine:RepeatButtonType" />
  <xs:complexType name="ScrollerButtonType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="0" name="delay" type="xs:long" use="optional" />
        <xs:attribute default="0" name="interval" type="xs:long" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="ScrollerButton" substitutionGroup="engine:VisualElement" type="engine:ScrollerButtonType" />
  <xs:complexType name="ScrollViewType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="engine:VisualElement" />
        </xs:sequence>
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="false" name="showHorizontalScroller" type="xs:boolean" use="optional" />
        <xs:attribute default="false" name="showVerticalScroller" type="xs:boolean" use="optional" />
        <xs:attribute default="0" name="horizontalLowValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="horizontalHighValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="horizontalPageSize" type="xs:float" use="optional" />
        <xs:attribute default="0" name="horizontalValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="verticalLowValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="verticalHighValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="verticalPageSize" type="xs:float" use="optional" />
        <xs:attribute default="0" name="verticalValue" type="xs:float" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="ScrollView" substitutionGroup="engine:VisualElement" type="engine:ScrollViewType" />
  <xs:simpleType name="Scroller_direction_Type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Horizontal" />
      <xs:enumeration value="Vertical" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ScrollerType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="0" name="lowValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="highValue" type="xs:float" use="optional" />
        <xs:attribute default="Vertical" name="direction" type="engine:Scroller_direction_Type" use="optional" />
        <xs:attribute default="0" name="value" type="xs:float" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Scroller" substitutionGroup="engine:VisualElement" type="engine:ScrollerType" />
  <xs:simpleType name="Slider_direction_Type">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Horizontal" />
      <xs:enumeration value="Vertical" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SliderType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="0" name="lowValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="highValue" type="xs:float" use="optional" />
        <xs:attribute default="0" name="pageSize" type="xs:float" use="optional" />
        <xs:attribute default="Vertical" name="direction" type="engine:Slider_direction_Type" use="optional" />
        <xs:attribute default="0" name="value" type="xs:float" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Slider" substitutionGroup="engine:VisualElement" type="engine:SliderType" />
  <xs:complexType name="TextFieldType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="0" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="" name="text" type="xs:string" use="optional" />
        <xs:attribute default="0" name="maxLength" type="xs:int" use="optional" />
        <xs:attribute default="false" name="password" type="xs:boolean" use="optional" />
        <xs:attribute default="" name="maskCharacter" type="xs:string" use="optional" />
        <xs:attribute default="false" name="multiline" type="xs:boolean" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="TextField" substitutionGroup="engine:VisualElement" type="engine:TextFieldType" />
  <xs:complexType name="ToggleType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="" name="text" type="xs:string" use="optional" />
        <xs:attribute default="false" name="value" type="xs:boolean" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Toggle" substitutionGroup="engine:VisualElement" type="engine:ToggleType" />
  <xs:complexType name="VisualContainerType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="engine:VisualElement" />
        </xs:sequence>
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="VisualContainer" substitutionGroup="engine:VisualElement" type="engine:VisualContainerType" />
  <xs:complexType name="TemplateContainerType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute name="template" type="xs:string" use="required" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="TemplateContainer" substitutionGroup="engine:VisualElement" type="engine:TemplateContainerType" />
  <xs:complexType name="BoxType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="engine:VisualElement" />
        </xs:sequence>
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Box" substitutionGroup="engine:VisualElement" type="engine:BoxType" />
  <xs:complexType name="PopupWindowType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="engine:VisualElement" />
        </xs:sequence>
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="" name="text" type="xs:string" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="PopupWindow" substitutionGroup="engine:VisualElement" type="engine:PopupWindowType" />
  <xs:complexType name="ListViewType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="30" name="itemHeight" type="xs:int" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="ListView" substitutionGroup="engine:VisualElement" type="engine:ListViewType" />
  <xs:complexType name="ButtonType">
    <xs:complexContent mixed="false">
      <xs:restriction base="engine:VisualElementType">
        <xs:attribute default="" name="name" type="xs:string" use="optional" />
        <xs:attribute default="Position" name="pickingMode" type="engine:VisualElement_pickingMode_Type" use="optional" />
        <xs:attribute default="-1" name="focusIndex" type="xs:int" use="optional" />
        <xs:attribute default="" name="text" type="xs:string" use="optional" />
        <xs:anyAttribute processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Button" substitutionGroup="engine:VisualElement" type="engine:ButtonType" />
</xs:schema>