<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
    	  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" 
  targetNamespace="http://localhost/openlaszlo/lzx" 
  xmlns:lzx="http://localhost/openlaszlo/lzx">
  <xs:simpleType name="booleanLiteral">
    <xs:restriction base="xs:boolean"/>
  </xs:simpleType>
  <xs:simpleType name="colorLiteral">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="numberLiteral">
    <xs:restriction base="xs:double"/>
  </xs:simpleType>
  <xs:simpleType name="sizeLiteral">
    <xs:restriction base="xs:double">
      <xs:minInclusive value="0"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="inheritableBooleanLiteral">
    <xs:union memberTypes="lzx:booleanLiteral">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="inherit"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="constraint">
    <xs:restriction base="xs:string">
      <xs:pattern value="$(style|path|immediately|once|always)?\{.*\}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="boolean">
    <xs:union memberTypes="lzx:booleanLiteral lzx:constraint">
    <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="null"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="booleanOrNull">
    <xs:union memberTypes="lzx:boolean">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="null"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="color">
    <xs:union memberTypes="lzx:colorLiteral lzx:constraint"/>
  </xs:simpleType>
  <xs:simpleType name="expression">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="reference">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="number">
    <xs:union memberTypes="lzx:numberLiteral lzx:constraint xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="token">
    <xs:union memberTypes="xs:token"/>
  </xs:simpleType>
  <xs:simpleType name="size">
    <xs:union memberTypes="lzx:sizeLiteral lzx:constraint"/>
  </xs:simpleType>
  <xs:simpleType name="numberExpression">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="sizeExpression">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="css">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>
  <xs:simpleType name="opacity">
    <xs:union memberTypes="lzx:constraint">
      <xs:simpleType>
        <xs:restriction base="xs:double">
          <xs:minInclusive value="0.0"/>
          <xs:maxInclusive value="1.0"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="percentage">
    <xs:restriction base="xs:string">
      <xs:pattern value="(\d+(.\d?)|.\d+)%"/>
    </xs:restriction>
  </xs:simpleType>
<xs:element name="passthrough" type="lzx:passthrough" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Provides a way to import SWF10 declarations. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="passthrough" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="when" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Provides a way to import SWF10 declarations. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="styledtext" type="lzx:styledtext" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A text subclass which allows use of text styles
        @START_CODE
            &lt;styledtext text="hello" style="mytextstyle" /&gt;
        @END_CODE
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="styledtext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:text">
      <xs:attribute name="style" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 should be an object of type "textstyle" </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="menubutton" type="lzx:menubutton" >
</xs:element>
  <xs:complexType name="menubutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:button">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="lzeditcombobox" type="lzx:lzeditcombobox" >
</xs:element>
  <xs:complexType name="lzeditcombobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:lzcombobox">
      <xs:attribute name="y_offset" type="xs:string" default="2" >
</xs:attribute>
      <xs:attribute name="x_offset" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="width_offset" type="xs:string" default="-9" >
</xs:attribute>
      <xs:attribute name="height_offset" type="xs:string" default="-3" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="vsliderthumb" type="lzx:vsliderthumb" >
</xs:element>
  <xs:complexType name="vsliderthumb" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:button">
      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
</xs:attribute>
      <xs:attribute name="drag_min" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="drag_max" type="lzx:number" default="0" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="closebox" type="lzx:closebox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the closebox class has its own resource </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="closebox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="myday" type="lzx:myday" >
</xs:element>
  <xs:complexType name="myday" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatepickerday">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="radiogroup" type="lzx:radiogroup" >
</xs:element>
  <xs:complexType name="radiogroup" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselist">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="Test" type="lzx:Test" >
<xs:annotation>
<xs:documentation xml:lang="en">

  Test is the abstract interface class for all LZUnit tests.

  It accumulates the results of the test and defines the various
  assert methods that can be used to implement each test.

  &lt;xref linkend="lz.TestCase"/&gt; and &lt;xref linkend="lz.TestResult"/&gt; extend this class to provide
  functionality.
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="Test" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:DebugObject">
      <xs:attribute name="formatter" type="xs:string" default="new lz.text()" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baseradiogroup" type="lzx:baseradiogroup" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Class baseradiogroup: a class representing the selected radiobutton,
          that can have many radiobuttons associated with it </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="baseradiogroup" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="event" type="lzx:event" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The sender in Laszlo's point-to-point event system.
Events underly most of the functionality in OpenLaszlo applications. Unlike events in similar systems, OpenLaszlo's events are point-to-point, meaning that there is no general broadcast mechanism for events, and events do not trickle up or down the instance hierarchy. Instead, objects called &lt;handler&gt;s use LzDelegate.register() to register to receive events.

An event is implicitly declared for every attribute of a class or instance and sent when that attribute is changed. So, for instance, if a class has an attribute foo, you can receive events when foo changes by registering for the onfoo event.

Events are sent with a single argument, which usually conveys information about the property that changed. The default behavior of the LzEventable.setAttribute() method is to set the named property and send the event called "on" + property. This is general mechanism that updates constraints in a OpenLaszlo programs. For instance, when a view changes its x position, it sends the event onx with the new value for its x property.

Example:
&lt;handler name="onavalue" reference="eventSender" args="v"&gt;
  this.setAttribute('x' , v);
&lt;/handler&gt; 
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="event" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="name" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name of the event </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="inittimer" type="lzx:inittimer" >
</xs:element>
  <xs:complexType name="inittimer" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tabscontent" type="lzx:tabscontent" >
</xs:element>
  <xs:complexType name="tabscontent" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetabscontent">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baseformitem" type="lzx:baseformitem" >
</xs:element>
  <xs:complexType name="baseformitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevaluecomponent">
      <xs:attribute name="submitname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name used when submitting the data of the form item.
              If no submitname is given before oninit, the 'name' attribute is used.
              Unlike the name attribute, submitname may be changed at runtime. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="submit" type="lzx:boolean" default="${enabled}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If submit is true, then the value of this element will be submitted
              with the form.  By default, submit is true when enabled.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rollbackvalue" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Rollback value for the baseformitem. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onvalue" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent whenever checkbox value changes. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onchanged" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when baseformitem is changed. Only sent once when true
              or once when false. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ignoreform" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the component will not inform its parent form
             that it has changed. Useful in conjunction with submit=false </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="changed" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Boolean to determine whether the baseformitem was changed. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="emailvalidator" type="lzx:emailvalidator" >
</xs:element>
  <xs:complexType name="emailvalidator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevalidator">
      <xs:attribute name="toomanyatmarkErrorstring" type="xs:string" default="Too many @ characters in your email address." >
</xs:attribute>
      <xs:attribute name="missingperiodErrorstring" type="xs:string" default="The domain in your email address is missing a period." >
</xs:attribute>
      <xs:attribute name="missingatmarkErrorstring" type="xs:string" default="Missing the @ character in your email address." >
</xs:attribute>
      <xs:attribute name="incorrectlydomainErrorstring" type="xs:string" default="The domain in your email address is incorrectly formatted." >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datapoints" type="lzx:datapoints" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords private
          datapoints for the chart </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datapoints" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="valuepoints" type="lzx:valuepoints" >
<xs:annotation>
<xs:documentation xml:lang="en">

       Represents a value point in the chart
       @access public
       </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="valuepoints" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="tip" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the tooltip value will be display when the mouse over the line </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="label" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the label will be display next to the line </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datay" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y point will be draw </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datax" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the x point will be draw </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="stylishbutton" type="lzx:stylishbutton" >
</xs:element>
  <xs:complexType name="stylishbutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
      <xs:attribute name="tint" type="lzx:color" default="0xD9DCF5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Control the look of the button. These attributes can and should
              be controlled with css. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="texty" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 y position of text, for fine tuning </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showrightedge" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="showrightborder" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 whether to show highlight on left side of button </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showleftedge" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="showleftborder" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 whether to show shadow on right side of button </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rightresource" type="xs:string" default="stylishbutton_right_rsc" >
</xs:attribute>
      <xs:attribute name="middleresource" type="xs:string" default="stylishbutton_middle_rsc" >
</xs:attribute>
      <xs:attribute name="leftresource" type="xs:string" default="stylishbutton_left_rsc" >
</xs:attribute>
      <xs:attribute name="icony" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 y position of icon, for fine tuning.
            if not specified, center the icon vertically. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 icon resource name prefix </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fontcolor" type="lzx:color" default="0x373B56" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="fisheye" type="lzx:fisheye" >
</xs:element>
  <xs:complexType name="fisheye" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="start_size" type="xs:string" default="24" >
</xs:attribute>
      <xs:attribute name="halo_size" type="xs:string" default="20" >
</xs:attribute>
      <xs:attribute name="expanded_size" type="xs:string" default="100" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_scrubstate" type="lzx:_scrubstate" >
<xs:annotation>
<xs:documentation xml:lang="en">

   enclosing view must have the following attributes:
   stream  the stream to control, assume it is paused
   min     min 'x' value
   max     max 'x' value

   @keywords private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="_scrubstate" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:state">
      <xs:attribute name="x" type="xs:string" default="this.__scrubstate_getnewpos(                 this.immediateparent.getMouse( 'x' ) + this.__scrubstate_xdoffset)" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="microphone" type="lzx:microphone" >
</xs:element>
  <xs:complexType name="microphone" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:mediadevice">
      <xs:attribute name="stream" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Mediastream to associate with the microphone, for audio recording. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="silencetimeout" type="lzx:number" default="-1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Silence timeout in ms, the amount of silent time signifying that 
              silence has actually begun.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="silencelevel" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Silence level, 0-100, the amount of sound required to activate 
              the microphone.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rate" type="lzx:number" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Rate in khz the microphone is using to capture sound, either 5, 8, 11, 22, or 44.
              @keywords final  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="level" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Audio level, 0-100, the amount of sound detected by this microphone.
              Reset to 0 when there is no audio (no activity or not allowed).
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="gain" type="lzx:number" default="50" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The amount the microphone boosts the signal.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="framesperpacket" type="lzx:number" default="6" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Number of Speex speech frames transmitted in a packet.
              @keywords final  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="encodequality" type="lzx:number" default="6" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The quality of encoded speech quality when using the Speex codec.
              Possible values are from 0 to 10.
              @keywords final  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="echosuppression" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the microphone will attempt to use echo suppression.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="codec" type="xs:string" default="NellyMoser" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The codec to use, either 'NellyMoser' or 'Speex'.
              @keywords final  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="image" type="lzx:image" >
<xs:annotation>
<xs:documentation xml:lang="en">
 image represents an image that can be loaded at runtime, either by specifying a URL directly or by binding to data</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="image" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="src" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The URL to load the image from.  May be set directly on this attribute or indirectly by specifying a datapath for this tag. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="prefix" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 an optional prefix URL to load from. If specified, the url will be appended to this prefix.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onsrc" type="xs:string" >
</xs:attribute>
      <xs:attribute name="lastloaded" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The last URL loaded by this image tag.  Used to prevent the same URL from loading twice.  
              @keywords readonly</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="forcereload" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the same URL will be reloaded.  If false, the same URL will not load multiple times.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tooltipManager" type="lzx:tooltipManager" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Tooltip Manager
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="tooltipManager" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="tooltip_obj" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onMouseOverDelegateArray" type="xs:string" default="[]" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onMouseOutDelegateArray" type="xs:string" default="[]" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="messages" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Tooltip Manager
  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="messageMap" type="xs:string" default="[]" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="delay" type="lzx:number" default="1000" >
</xs:attribute>
      <xs:attribute name="component_identifier" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="databar" type="lzx:databar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
    Render a bar or column of data in the chart</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="databar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="totalsets" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Total number of bar sets. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tooltip" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, will display additional information about data
            in a popup when the cursor is placed over a bar.
            (Tooltip to be developed in a future version.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="siblingbars" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The number of sibling bars. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawaxis" type="xs:string" default="x" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The chart's direction.  (Set here as well for easier reference.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataresource" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The image to be loaded over the bar, if any. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bvalue" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Numerical value of bar. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="barspace" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The space between bars. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="barset" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This bar's group's set number. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="barnumber" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This bar's number in its series. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="animationinit" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Animation style for when bars appear. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basevalidator" type="lzx:basevalidator" >
</xs:element>
  <xs:complexType name="basevalidator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="trim" type="lzx:boolean" default="true" >
</xs:attribute>
      <xs:attribute name="requiredErrorstring" type="xs:string" default="this field is required." >
</xs:attribute>
      <xs:attribute name="required" type="lzx:boolean" default="false" >
</xs:attribute>
      <xs:attribute name="isformvalidator" type="lzx:boolean" default="true" >
</xs:attribute>
      <xs:attribute name="iserror" type="lzx:boolean" default="false" >
</xs:attribute>
      <xs:attribute name="innercompornent" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="errorstring" type="xs:string" default="" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="autocompletecombobox" type="lzx:autocompletecombobox" >
</xs:element>
  <xs:complexType name="autocompletecombobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="defaulttext" type="xs:string" default="Type Here" >
</xs:attribute>
      <xs:attribute name="contentpath" type="xs:string" >
</xs:attribute>
      <xs:attribute name="actuallyTyped" type="xs:string" default="" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="labeledinputtext" type="lzx:labeledinputtext" >
<xs:annotation>
<xs:documentation xml:lang="en">

        A horizontal container for a right-aligned label and text field.
        usage:
            @START_CODE
                &lt;labeledinputtext label="Title" datapath="details/@title" fieldwidth="50"/&gt;
            @END_CODE

        datapath should be set to resolve to a text value
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="labeledinputtext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="textcolor" type="xs:string" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color of text </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="multiline" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 set to true for multiline </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxlength" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Maximum length for the editable text field. Default is null
              (no limit) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelwidth" type="lzx:number" default="68" >
<xs:annotation>
<xs:documentation xml:lang="en">
 column for right-aligned label </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelsize" type="xs:string" default="${detailslabel_style.fontsize}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 label font size </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelfont" type="xs:string" default="${detailslabel_style.font}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 label font </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelcolor" type="lzx:number" default="${detailslabel_style.textcolor}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color of label </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="label" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the right-aligned label </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fontname" type="xs:string" default="Verdana, Arial, sans" >
<xs:annotation>
<xs:documentation xml:lang="en">
 font face </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fieldwidth" type="lzx:number" default="128" >
<xs:annotation>
<xs:documentation xml:lang="en">
 width of editable text field </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fieldheight" type="lzx:number" default="18" >
<xs:annotation>
<xs:documentation xml:lang="en">
 set this to larger if multiline is true </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="dragstate" type="lzx:dragstate" >
<xs:annotation>
<xs:documentation xml:lang="en">
 this state provides standard 'drag' functionality to its immediateparent when applied </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="dragstate" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:state">
      <xs:attribute name="drag_min_y" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the minimum value for the y attribute. Default : null, no minimum </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drag_min_x" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the minimum value for the x attribute. Default : null, no minimum </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drag_max_y" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the maximum value for the y attribute. Default : null, no maximum </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drag_max_x" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the maximum value for the x attribute. Default : null, no maximum </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drag_axis" type="xs:string" default="both" >
<xs:annotation>
<xs:documentation xml:lang="en">
 'x', 'y' or 'both' </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetab" type="lzx:basetab" >
</xs:element>
  <xs:complexType name="basetab" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselistitem">
      <xs:attribute name="tabpane" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The tabpane associated with this tab.
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_internalinputtext" type="lzx:_internalinputtext" >
</xs:element>
  <xs:complexType name="_internalinputtext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:inputtext">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videolibraryicon" type="lzx:videolibraryicon" >
</xs:element>
  <xs:complexType name="videolibraryicon" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="selected" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="over" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="maxHeight" type="xs:string" default="48" >
</xs:attribute>
      <xs:attribute name="icon" type="xs:string" default="video_no_icon_rsc" >
</xs:attribute>
      <xs:attribute name="aspectRatio" type="xs:string" default="1" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="TextTestCase" type="lzx:TextTestCase" >
</xs:element>
  <xs:complexType name="TextTestCase" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:TestCase">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="regionstyle" type="lzx:regionstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style for a region
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="regionstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
      <xs:attribute name="image" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 image path </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="gradient" type="xs:string" default="none" >
<xs:annotation>
<xs:documentation xml:lang="en">
 'none', 'linear', 'radial' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="color" type="lzx:color" default="0xFF0000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 RGB color on the axis line </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="view" type="lzx:view" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The &lt;view&gt; is the most basic viewable element in an OpenLaszlo application. Anything that is displayed on the canvas is a view or extends the view class. A view is a rectangle, which can be visible or invisible, and which can contain other views or display "resources" such as images, .swf files, or other supported media. One view controls one displayable resource. The view system is strictly hierarchical; that is, each view has a single parent but can have multiple children.  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="view" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="yscale" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Specifies this vertical scale for this and all child views. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="yoffset" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
Specifies a translation point for drawing of this view. If the yoffset is set, then rotation and y position will be calculated by first adding the yoffset.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="y" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The vertical offset of this view's upper left corner from the upper left corner of its container  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xscale" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Specifies this horizontal scale for this and all child views. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xoffset" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Specifies a translation point for drawing of this view. If the xoffset is set, then rotation and x position will be calculated by first adding the xoffset.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="x" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The horizontal offset of this view's upper left corner from the upper left corner of its container.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="with" type="xs:string" >
</xs:attribute>
      <xs:attribute name="width" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
The width of the view. Can be set to either a number, or null, to indicate that the view should be sized to hold its content. If the view is set to stretch its resource, the resource will be resized to the new value. When read, reflects the actual size of the view.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="visible" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A value of true means that this view is shown. A value of false means that this view is hidden. Note that an otherwise clickable view that is not visible will have no click region and will not be clickable.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="visibility" type="xs:string" default="collapse" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A value of "visible" means that this view is shown. A value of "hidden" means that this view is hidden. Setting this attribute to "collapse" means that the runtime will hide this view when: its opacity is zero, it has a datapath that does not match a node, or it is loading its media. In this case, the the value of the 'visible' attribute of the view will reflect the view's current visible state. 
	One of: hidden|visible|collapse </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="valign" type="xs:string" default="top" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Sets the vertical alignment for the view to the given value. The alignment is based on the height of this view as compared to the height of the view's immediateparent. 
	One of: 	"top" | "middle" | "bottom" | constraint </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="usegetbounds" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	True if this view requires a call to getBounds() for accurate width and height measurement. This may be necessary when an offset or rotation are applied.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="unstretchedwidth" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If stretches is not set to none, the width that this view would be if it weren't stretched. This attribute can be used to scale a view by a percentage of its original size, or to determine the aspect ratio for a view.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="unstretchedheight" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If stretches is not set to none, the height that this view would be if it weren't stretched. This attribute can be used to scale a view by a percentage of its original size, or to determine the aspect ratio for a view.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="totalframes" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The total number of frames for this view's resource. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tintcolor" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Sets the color offset, based on a hexadecimal color string, e.g. '#ff00ff'. See setColorTransform() for details. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="subviews" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	An array of the subviews that are children of this view. This is initialized to an empty array for views that have no subviews.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="stretches" type="xs:string" default="none" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Setting stretches causes a view to change its coordinate space so that everything it contains (resources and other views) fit exactly into the view's width and/or height. The default for this property is "none". This is used to resize a view's contents by setting its width and/or height. 
	One of: 	"width" | "height" | "both" | "none" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="source" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The URL from which to load the resource for this view. If this attribute is set, the media for the view is loaded at runtime.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showhandcursor" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Show or hide the hand cursor for this view, if clickable </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shadowdistance" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The distance for the drop shadow, in pixels </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shadowcolor" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The color for the drop shadow </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shadowblurradius" type="lzx:number" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
The blur radius for the drop shadow, in pixels. A negative value will cause the shadow to be inset. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shadowangle" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The angle for the drop shadow, in degrees </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rotation" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The rotation value for the view (in degrees). Value may be less than zero or greater than 360.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resourcewidth" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
The width of the resource that this view attached </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resourceheight" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The height of the resource that this view attached </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resource" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
A resource that is presented in the background of this view. The value can be either the name of a resource defined with the resource tag, a URL, or a pathname. If the value is a URL, the resource is requested when the view is displayed. If it's a pathname, the file named by the pathname is compiled into the application, and attached to this view.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ratio" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This element is only available in the splash SWF specific </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proxyurl" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The url of the proxy server, if the app is running in proxied mode. proxyurl can be null, a URL string, or a function.

    If the value is a string, treat it as a URL to the proxy server.
    If the value is a function, it should return the URL of the proxy server.

The default proxy policy references the proxyurl of the canvas.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="playing" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, this view is currently playing. Setting to true causes the view to play, false causes playback to stop. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pixellock" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	The view system supports sub-pixel positioning to enable smooth animation. This may be turned off to make the view snap to a pixel boundary by setting pixellock to true.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="opacity" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The opacity of the view's contents. 1.0 is opaque; 0.0 is totally transparent (invisible).  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ony" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
event for changes to view's y property </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onx" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
event for changes to view's x property </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onwidth" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
event for changes to view's width property </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onvisible" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when the view changes visibility (true/false) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ontouch" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The ontouch event is sent when a touch device receives a multitouch event. The value sent with the event is an array of objects with with two properties: clientX and clientY. Currently supported only in iOS on DHTML. Note that Android Webkit doesn't send multitouch events - see http://www.quirksmode.org/mobile/tableTouch.html </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ontimeout" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when the request to load media for the view times out </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onstop" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when a view's resource that is capable of playing is stopped. This is only called if stop is called directly; when a resource hits its last frame, the lz.view event onlastframe is called. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onshadowdistance" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when shadowdistance changes </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onshadowcolor" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when shadowcolor changes </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onshadowblurradius" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when shadowblurradius changes </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onshadowangle" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when shadowangle changes </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onremovesubview" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Event called when this view removes a subview </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onplaying" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when a view begins playing its resource </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onplay" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when a view begins playing its resource </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onopacity" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when a view changes its opacity </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmouseupoutside" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The onmouseup event is sent when the pointing device button is released outside the element it went down on. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmouseup" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The onmouseup event is sent when the pointing device button is released over an element. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousetrackup" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when the mouse button is released over a view that is registered to an active track group. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousetrackover" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when the mouse is over a view that is registered to an active track group. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousetrackout" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when the mouse leaves the visible area of a view that previously sent an 'ontrackover' event. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmouseover" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The onmouseover event is sent when the pointing device is moved onto an element. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmouseout" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The onmouseout event is sent when the pointing device is moved so that is is no longer over an element. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousedragout" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The onmousedragout event is sent when the pointing device is moved off the element while the button is down. down. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousedragin" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The onmousedragin event is sent when the pointing device button has moved off the element and back on again while the button is down. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousedown" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The onmousedown event is sent when the pointing device button is pressed over an element. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onloadratio" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sends a percentage (0-1) reflecting the amount of a media file that's been downloaded. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onload" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Send when the view finishes loading media. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onlastframe" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent when the view sets its frame (resource number) to the last frame. This can be used to find out when a streaming media clip is done playing. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onkeyup" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The onkeyup event is sent when this view has the focus and a key is released. This event is sent with the keycode for the key that went up. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onkeydown" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The onkeydown event is sent when this view has the focus and a key is pressed down. Multiple key down events are sent for a key that is held down. If you want the script executed only once, use onkeyup. This event is sent with the keycode for the key that is down.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onheight" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event for changes to view's height property</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ongesture" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The ongesture event is sent when a touch device receives a gesture event. The value sent with the event is an object with two properties: scale and rotation. Currently supported only in iOS on DHTML. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onframesloadratio" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sends a percentage (0-1) reflecting the number of frames downloaded.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onframe" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent onidle while view is playing its resource</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onfocus" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The onfocus event is sent when an element receives focus either by the pointing device or by tabbing navigation.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onerror" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent when there is an error loading the view's resource. The argument sent with the event is an error string.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ondblclick" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The ondblclick event is sent when the pointing device button is double clicked over an element.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oncornerradius" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent when cornerradius changes</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oncontext" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent when the drawing context is ready to use, which can take some time in IE DHTML.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onclip" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The onclip event is sent when the clip attribute of a view is changed</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onclickable" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event for changes to view's clickable property</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onclick" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   The onclick event is sent when the pointing device button is clicked over an element.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onblur" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The onblur event is sent when an element loses focus either by the pointing device or by tabbing navigation.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onbackgroundrepeat" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event for changes to view's backgroundrepeat property </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onaddsubview" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Event called when this view adds a subview </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mask" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Reference to closest masked view in the hierarchy at or above this one  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="loadratio" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	For views whose resource is loaded at runtime, ratio of the loaded bytes to the total bytes. This is a number between zero and 1.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="layout" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A CSS declaration of property: value pairs of layout attributes, which are used to create a layout that is attached to this view. If there is a class property, it names the class of the layout to be created, otherwise &lt;simplelayout&gt; is used. To remove the previously set layout, use {'class': 'none'} Examples: layout="axis: x", layout="class: constantlayout", layout="axis: y", layout="axis: x; spacing: 5".  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="height" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The height of the view. Can be set to either a number, or null, to indicate that the view should be sized to hold its content. If the view is set to stretch its resource, the resource will be resized to the new value. When read, reflects the actual size of the view.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hassetwidth" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, then this view has an assigned or constrained width, and the view will not be sized to its contents.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hassetheight" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, then this view has an assigned or constrained height, and the view will not be sized to its contents.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hasdirectionallayout" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
If true, sprite will use TLF text framework class that supports bidirectional text layout. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="framesloadratio" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	For views whose resource is loaded at runtime, the ratio of the loaded frames to the total frames. This is a number between zero and 1.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="frame" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If this view has a multi-frame resource, this allows setting which resource frame is displayed. Defaults to the first frame (1). See also the resource attribute. Setting this attribute will change the frame that is being displayed by the resource associated with this view. The first frame of the resource is frame 1. Setting a view's 'donttrackplay' option to true will allow the view's resource to play without updating the value of the view's frame property. This can save CPU usage in cases where the application doesn't need to know what frame the resource is showing while it is playing.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fontstyle" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The style to use to render text fields that appear inside of this view. One of "plain", "bold" , "italic" or "bolditalic".  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fontsize" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Pixel size to use to render text which appears inside this view. The default is 8.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="font" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The font to use for any &lt;text&gt; or &lt;inputtext&gt; elements that appear inside this view. Like all the font properties (fontstyle and fontsize too) these properties cascade down the view hierarchy until a new value is specified.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="focustrap" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, this view "traps" the focus, for example in a window or dialog. See focus manager (lz.Focus) for more details.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="focusable" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, this view will receive focus events. See focus manager (lz.Focus) for more details.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fgcolor" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
The foreground color of any &lt;text&gt; or &lt;inputtext&gt; elements that appear inside this view. To apply a color transform, see tintcolor. May be set to any valid CSS color specification. When read, will be read as the equivalent numeric value. To retrieve a CSS color specification, use this.presentAttribute('fgcolor', 'color'). Default is 0 (black).  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cursor" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The cursor to display when the mouse is over this view. Any resource ID can be used as a cursor, or '' for the default cursor. This attribute can be set for any view with clickable=true.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cornerradius" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The corner radius for the background, e.g. '4' or a list of up to 8 numbers '4 0 0 4 / 2 0 0 2'. Per http://www.w3.org/TR/css3-background/#the-border-radius the 8 values for each radii are given in the order top-left, top-right, bottom-right, bottom-left. If you use the '/' notation, the values before the slash are the horizontal radii, and the values after the slash are the vertical radii.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="contextmenu" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The context menu installed on this view </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="context" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Contains a reference to the raw drawing context. The oncontext event is sent when the context is ready to use, which can take some time in IE DHTML.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="colortransform" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	color transforms everything contained in the view (except the background) by the transformation dictionary given in o. The dictionary has the following possible keys: o.redMultiplier: multiplier for red component (0 to 1) defaults to 1 o.redOffset: offset for red component (-255 to 255) defaults to 0 o.greenMultiplier: multiplier for green component (0 to 1) defaults to 1 o.greenOffset: offset for green component (-255 to 255) defaults to 0 o.blueMultiplier: multiplier for blue component (0 to 1) defaults to 1 o.blueOffset: offset for blue component (-255 to 255) defaults to 0 o.alphaMultiplier: multiplier for alpha component (0 to 1) defaults to 1 o.alphaOffset: offset for alpha component (-255 to 255) defaults to 0  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="clip" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Clip the view's contents to its size. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="clickregion" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Setting to a vector-based resource changes the clickable hotspot for the mouse. Check capabilities.clickregion before using to avoid debugger warnings.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="clickable" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, this view intercepts click events; otherwise they are passed to its container. This defaults to true if the view defines a mouse event handler or a cursor. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="center" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This element is only available in the splash SWF specific </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="capabilities" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
An object containing properties corresponding to the current runtime's capabilities. For example, capabilities.rotation is true in swf and recent versions of Safari and Firefox.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cachebitmap" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A value of true means that this view's bitmap will be cached, if available. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgcolor" type="lzx:color" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The background color of the view. Setting bgcolor to null will make the view transparent. May be set to any valid CSS color specification. When read, will be read as the equivalent numeric value. To retrieve a CSS color specification, use this.presentAttribute('bgcolor', 'color'). Default is null (transparent).  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="backgroundrepeat" type="xs:string" default="norepeat" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Setting backgroundrepeat causes a view to repeat its resource to fit the view's width and/or height. Can be 'repeat', 'repeat-x', 'repeat-y' or 'norepeat' per the CSS1 background-repeat style. 
	One of: 	"repeat" | "repeat-x" | "repeat-y" | "norepeat" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="align" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sets the alignment for the view to the given value. The alignment is based on the size of this view as compared to the size of the view's immediate parent. 
	One of: 	"left" | "center" | "right" | constraint </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="aatabindex" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Set accessibility tab order </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="aasilent" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Set accessibility silencing/unsilencing </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="aaname" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Set accessibility description </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="aadescription" type="xs:string" >
</xs:attribute>
      <xs:attribute name="aaactive" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Activate/inactivate children for accessibility </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="soap" type="lzx:soap" >
</xs:element>
  <xs:complexType name="soap" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:rpc">
      <xs:attribute name="wsdl" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Required attribute that specifies WSDL to read for the SOAP
              object. The value for wsdl should be an href. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="service" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The SOAP service to fetch. If not specified, the first service
              encountered in the WSDL is used. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="responseheaders" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If set, the SOAP response header returned by the last
              call. The value for this must be a dataset. Default is null. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="requestheaders" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The SOAP header to pass with each request. This can be either a
              string or a dataset. Default is null. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proto" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The prototypes that can be used to create objects. 
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="port" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The SOAP port to use. If not specified, the first SOAP port
              encountered in the WSDL is used. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baseform" type="lzx:baseform" >
</xs:element>
  <xs:complexType name="baseform" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="onchanged" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when baseformitem is changed. Only sent once when true
              or once when false. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="formdata" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Holds a reference to each datacomponent contained within the
              form. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="changed" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Boolean to determine whether the baseformitem was changed. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="rangeslider" type="lzx:rangeslider" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="rangeslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:custombaseslider">
      <xs:attribute name="minx" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="minvalue" type="xs:string" default="this.minlimit + this.leftknob.x * this.valueratio" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxx" type="xs:string" default="${parent.rightknob.x}" >
</xs:attribute>
      <xs:attribute name="maxvalue" type="xs:string" default="this.minlimit + this.rightknob.x * this.valueratio" >
</xs:attribute>
      <xs:attribute name="isMouseDown" type="xs:string" default="false" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="mediadevice" type="lzx:mediadevice" >
</xs:element>
  <xs:complexType name="mediadevice" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="devicename" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Name of the device. 
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="deviceindex" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Zero-based index of the device, or null for user's default device. 
              Default is null, which selects the default device. 
              When the default device is initialized, deviceindex is updated to
              its actual index. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="debug" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 set to true for verbose debugging messages </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="capturing" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Boolean flag that controls if the media device
              is currently capturing input. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="allowed" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Tracks whether the user has allowed device access. 
              True after user has accepted security dialog,
              false if the user denies access with security dialog.
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="active" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Flag that tracks if there's device activity (audio sound, video motion). 
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="legenditem" type="lzx:legenditem" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
    individual legend item </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="legenditem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="textsize" type="lzx:number" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The font size of the label text for this item in the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the label text for this item in the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="linevisible" type="lzx:boolean" default="false" >
</xs:attribute>
      <xs:attribute name="itemvalue" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The value for this item in the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="itemlabel" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text label for this item. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="identifier" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
    individual legend item </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconshape" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The shape of the icon drawn. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color for the icon. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hlcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The highlight color to be used when this item has been
            moused over. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="face" type="lzx:face" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Defines a font face or style within the font family that the outer element defines.
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="face" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="style" type="xs:string" default="bold|italic|bold italic|italic bold|plain" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Corresponds to the fontstyle attribute of a view.
    One of: 	bold | italic | bold italic | italic bold | plain  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="src" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The path of a file that contains the source for this object. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="vslidertrack" type="lzx:vslidertrack" >
</xs:element>
  <xs:complexType name="vslidertrack" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="simplelayout" type="lzx:simplelayout" >
</xs:element>
  <xs:complexType name="simplelayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between each view in the layout </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to inset the first view controlled by the layout</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="newvscrollbar" type="lzx:newvscrollbar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The vertical scrollbar manipulates the y position of a target view that is
      clipped by its parent, creating a scrolling effect when the user
      clicks up/down arrows, clicks on the scroll track or drags the thumb. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="newvscrollbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basescrollbar">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="silverstyle" type="lzx:silverstyle" >
</xs:element>
  <xs:complexType name="silverstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:style">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="viewspool" type="lzx:viewspool" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
     Represents a pool of view </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="viewspool" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="viewclass" type="xs:string" default="$once{null}" >
</xs:attribute>
      <xs:attribute name="used" type="xs:string" default="$once{[]}" >
</xs:attribute>
      <xs:attribute name="unused" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
     Represents a pool of view </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="parentview" type="xs:string" default="$once{null}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="param" type="lzx:param" >
</xs:element>
  <xs:complexType name="param" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="value" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Value to use for parameter. A &lt;code&gt;getValue()&lt;/code&gt; method can be declared
              inside param to use its return as the parameter value. If both
              &lt;code&gt;value&lt;/code&gt; attribute and &lt;code&gt;getValue()&lt;/code&gt; method are declared, param will use
              &lt;code&gt;getValue()&lt;/code&gt;. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datepickerday" type="lzx:datepickerday" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is the implementation of the datepickerday for 
          the datepicker </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datepickerday" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatepickerday">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="columnchartplotarea" type="lzx:columnchartplotarea" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords private
     plotarea of column chart </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="columnchartplotarea" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:virtualdrawview">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="multiplefileupload" type="lzx:multiplefileupload" >
</xs:element>
  <xs:complexType name="multiplefileupload" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="numfields" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 numbers of fileuploadlist   </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="erroroccured" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Error occured</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="newhscrollbar" type="lzx:newhscrollbar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A scrollbar manipulates the x or y position of a target view that is
      clipped by its parent, creating a scrolling effect when the user clicks
      up/down arrows, clicks on the scroll track or drags the thumb. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="newhscrollbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basescrollbar">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="numbervalidator" type="lzx:numbervalidator" >
</xs:element>
  <xs:complexType name="numbervalidator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevalidator">
      <xs:attribute name="toosmallErrorstring" type="xs:string" default="This number is too small." >
</xs:attribute>
      <xs:attribute name="toobigErrorstring" type="xs:string" default="This number is too large." >
</xs:attribute>
      <xs:attribute name="notnumberErrorstring" type="xs:string" default="This field contains invalid characters." >
</xs:attribute>
      <xs:attribute name="notintErrorstring" type="xs:string" default="Enter integer value." >
</xs:attribute>
      <xs:attribute name="minvalue" type="lzx:number" default="null" >
</xs:attribute>
      <xs:attribute name="maxvalue" type="lzx:number" default="null" >
</xs:attribute>
      <xs:attribute name="domain" type="xs:string" default="real" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetabelement" type="lzx:basetabelement" >
</xs:element>
  <xs:complexType name="basetabelement" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselistitem">
      <xs:attribute name="onopenstop" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent at the end of the open animation. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onopenstart" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent at the start of the open animation. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onclosestop" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent at the end of the close animation. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onclosestart" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sent at the start of the close animation. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minheight" type="lzx:number" default="22" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The height the tab will close to. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="itemclassname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 When creating tabelements via additem, this is the class that gets
              created. The default value is the class of the first tabelement or
              its descendant. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hideonclose" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Content is automatically hidden when tabelement is closed. To
              override, set this attribute to false. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="headerheight" type="lzx:number" default="$once{minheight}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The height of the header. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="contentvisible" type="xs:string" default="$once{! hideonclose}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is set to true when a basetabelement begins to open and is
              set to false when it finishes its close. Default is the inverse of
              hideonclose. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetree" type="lzx:basetree" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An abstract base class to build tree controls. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basetree" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="yindent" type="lzx:number" default="20" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Spacing to indent trees on the y-axis. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xindent" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Spacing to indent trees on the x-axis. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="toggleselected" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Meaningful only in root. Flag to toggle selected nodes.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showroot" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Meaningful only in root tree. If false, the root item is invisible
              and its children are displayed.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selected" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Check to see if this tree is selected. Default is false, except
              for the root of a tree, which its selected attribute is set to
              true. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="recurse" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Meaningful only with data replication. If true, it will
              recursively follow the datapath's children.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="open" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Check to see if this tree is open. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselected" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event gets triggered whenever this tree is selected. The
              value of the selection (true or false) is sent with this
              event.
              Note the args of this has changed from the previous release. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event gets triggered whenever this tree is selected. This
              tree is sent with the event. The tree root also receives this
              event. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onopen" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event gets triggered whenever this tree is open. The open
              value of this tree is also sent. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onfocused" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event gets triggered whenever this tree is focused. The value
              of the focus (true or false) is sent with this event. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="multiselect" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Meaningful only in root. Whether to multiselect items.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="isleaf" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, this basetree is a leaf node. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="focusselect" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Meaningful only in root. Flag to select a tree on focus.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="focusoverlay" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Meaningful only in root. If focusselect is false and focusoverlay
              is true, then focus has a visual bracket overlay over the focused
              tree. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="focused" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, this tree is focused.
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="closesiblings" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Flag to close other siblings when this tree is open. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="closechildren" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Close all immediate children when this tree is closed. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoscroll" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Auto scroll if tree is clipped. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="debug" type="lzx:debug" >
<xs:annotation>
<xs:documentation xml:lang="en">

     @lzxname debug
     @keywords private_constructor
     @access public
     @topic LZX
     @subtopic Debugging
     @devnote NOTE [2008-11-25 ptw] Dummy class to hold documentation for debug tag
     @devnote TODO [2008-11-26 ptw] Make this the real class!
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="debug" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datacolumn" type="lzx:datacolumn" >
<xs:annotation>
<xs:documentation xml:lang="en">
 datacolumn contain a list of values of a series. List of values typically are data for x series,
        y series, tooltip series and datalabel series.
        @access public
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datacolumn" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="values" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 array of data representing the series values </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labeldatapath" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the name of the label in the datapath for the series </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datatype" type="xs:string" default="string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 type of data: string or number </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datadone" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 true when data had been loaded at least once </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="columndatapath" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the name of the column in the datapath for the series </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="hsplitpane" type="lzx:hsplitpane" >
</xs:element>
  <xs:complexType name="hsplitpane" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="sizer_width" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="rhs_placed" type="lzx:boolean" default="false" >
</xs:attribute>
      <xs:attribute name="lhs_width_start" type="xs:string" default="180" >
</xs:attribute>
      <xs:attribute name="lhs_placed" type="lzx:boolean" default="false" >
</xs:attribute>
      <xs:attribute name="lhs_min_width" type="xs:string" default="10" >
</xs:attribute>
      <xs:attribute name="lhs_max_width" type="xs:string" default="${this.width-20}" >
</xs:attribute>
      <xs:attribute name="bordersize" type="xs:string" default="1" >
</xs:attribute>
      <xs:attribute name="bordercolor" type="lzx:color" default="0x000000" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="mediastream" type="lzx:mediastream" >
</xs:element>
  <xs:complexType name="mediastream" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="url" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The url of the mediastream, maybe be relative URL, 
          for example: http://localhost/myvideo.flv, or simply myvideo.flv
          when type="rtmp" the url is always relative to the rtmpconnection.
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="http" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Protocol "rtmp" or "http".
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="totaltime" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Total length (in seconds) of mediastream currently playing.
          @type Number
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="time" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Current time of mediastream currently playing or recording (in seconds)
          @type Number
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="streamname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The rtmp streamname (without .flv suffix).
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rtmp" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The rtmp connection to use (defaults to the first one created).
          @type lz.rtmpconnection
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="recording" type="xs:string" default="${this.mode == 'recording'}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True if recording right now.
          @type Boolean 
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="progress" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Progress of mediastream currently downloading.
          (from 0 for none to 1 for all).
          @type Number
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="playing" type="xs:string" default="${(this.mode == 'playing') &amp;&amp; (!this.paused)}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True if playing right now.
          @type Boolean   
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="paused" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True to pause playback. Named this way to pun with paused for animators.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onstop" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when playing or recording stops.
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onstart" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when playing or recording starts.
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmetadata" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when metadata is received, whose parameter is a 
    dictionary of metadata.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oninsufficientbandwidth" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when insufficient bandwidth.
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oncuepoint" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when a cue point occurs,
          whose parameter is a dictionary of metadata.
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mutevideo" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True iff video is muted.
          @type Boolean 
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="muteaudio" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True iff audio is muted.
          @type Boolean 
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mode" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Mode: "" if doing nothing, "playing" if playing,
          "broadcasting" if can be received, "recording" if recording.
          Recording also implies can be received, i.e., broadcasting. 
          Pausing does not affect the mode, unlike stopping.
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mic" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A reference to the microphone. This must be set if broadcasting.
          This is set automatically if the stream is a child of a videoview.
          @type lz.microphone
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fps" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The current frames per second for playing video.
          @type Number
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="debug" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 When true, print extra info to the debugger.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cam" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A reference to the camera. This must be set if broadcasting.
          This is set automatically if the stream is a child of a videoview.
          @type lz.camera
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="buffertime" type="lzx:number" default="0.1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Amount of time (in seconds) to buffer before starting to display the 
          stream.  For a publishing stream, bufferTime specifies how long the 
          outgoing buffer can grow before the application starts dropping 
          frames.
          @type Number
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="broadcasting" type="xs:string" default="${(this.mode == 'broadcasting') || (this.mode == 'recording')}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True if broadcasting right now.
          @type Boolean 
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autorewind" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, video will automatically rewind to the beginning
          (and remain in a paused state) when playback ends.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoplayStart" type="xs:string" default="'either'" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Autoplay start argument passed to mediastream.play().
          See the mediastream.play documentation for its values. 
          @type String
          @accesss public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoplayReset" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Autoplay reset argument passed to mediastream.play(). 
          See the mediastream.play documentation for its values. 
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoplayPause" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Autoplay pause argument passed to mediastream.play().
          See the mediastream.play documentation for its values. 
          @type Boolean
          @access public
     </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoplayLength" type="xs:string" default="'end'" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Autoplay length argument passed to mediastream.play(). 
          See the mediastream.play documentation for its values. 
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoplay" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, video will start playing as soon as url is set.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_plainfloatshadow" type="lzx:_plainfloatshadow" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The shadows width and height are set to the width and height of the view
          it is trying to apply a shadow to.
          @keywords private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="_plainfloatshadow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="shadowsize" type="xs:string" default="1.5" >
</xs:attribute>
      <xs:attribute name="offsety" type="xs:string" default="10" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="scrollbar" type="lzx:scrollbar" >
</xs:element>
  <xs:complexType name="scrollbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basescrollbar">
      <xs:attribute name="disabledbgcolor" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If this is defined, it will be used as the scrollbar's background
          color when it is disabled. If not provided, the scrollbar will use
          the bgcolor of its closest parent that has a bgcolor defined.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="setter" type="lzx:setter" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A tag to declare or override attribute setter methods. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="setter" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="name" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A tag to declare or override attribute setter methods. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="args" type="xs:string" >
</xs:attribute>
  </xs:complexType>
<xs:element name="basedatepicker" type="lzx:basedatepicker" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Abstract class for the datepicker.  The basedatepicker class
          shows the days of the week in a typical month based layout.  Extend
          this class to create a full featured UI of a datepicker, or just use
          the datepicker component.
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basedatepicker" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="yinset" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The number if pixels from this.y to show the datepicker days 
              @keywords public 
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xinset" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The number if pixels from this.x to show the datepicker days 
              @keywords public 
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="weekclass" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The weekclass to use for this basedatepicker 
              @keywords public 
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showingyear" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The year that is currently showing in the datepicker.
              @keywords public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showingmonth" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The month that is currently showing in the datepicker.
              @keywords public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showingdate" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A Date object which represents the month to be shown. 
              @keywords public 
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selecteddatepickerday" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The datepickerday which has been selected. 
              @keywords public  
           </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selecteddate" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The Date that is currently selected.
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="latestdate" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The latest date that is selectable. 
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hasfocus" type="lzx:boolean" default="false" >
</xs:attribute>
      <xs:attribute name="earliestdate" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The earliest date that is selectable. 
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dayclass" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The dayclass to use for this basedatepicker 
              @keywords public 
        </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colorbox" type="lzx:colorbox" >
</xs:element>
  <xs:complexType name="colorbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="obj" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="color" type="xs:string" default="null" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chartbgstyle" type="lzx:chartbgstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style for chart background
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="chartbgstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="myslider" type="lzx:myslider" >
</xs:element>
  <xs:complexType name="myslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:slider">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chartlegend" type="lzx:chartlegend" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A legend for charts and graphs. It is imperative
        that this is declared at the very end of a chart.
        (Of beta quality.) Due to a couple bugs in drawview,
        performance is spotty in DHTML. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="chartlegend" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="titletextsize" type="lzx:number" default="12" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Size of the legend title's text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="titleposition" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The position of the title: left, right, center. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="titlecolor" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the legend title's text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textsize" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Size of the text in legend items. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textcolor" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the text in legend items. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resizetodata" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to resize the legend to the data.  If not, this will
            use the specified width and height for the legend, and fit
            legend items into this size to the best of its ability.  If so,
            this will use a rough guess at legend item dimensions, and
            resize the legend.  Accepted values: "tall", "wide", "$once{null}".
            "tall" will make a taller legend, "wide" will make a wider legend,
            "$once{null}" will not resize. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="posit" type="xs:string" default="right" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The position of the legend: left, right, top, bottom, manualleft,
            manualright, manualtop, manualbottom.
            If left or right, the legend will behave as though
            resizetodata="tall" is in effect.  If top or bottom,
            the legend will behave as though resizetodata="wide" is
            in effect.  If manual, additional values must be set to
            place and size legend, and the legend will fit the
            legenditems within the legend to the best of its ability. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pieradius" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Radius of the pie.  This helps determine placement. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="piepieces" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Pie pieces associated with this legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="piececolors" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Respective piece colors. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltitle" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The legend title, if any. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendy" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If posit is 'manual', this sets the y coordinate of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If posit is 'manual', this sets the x coordinate of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendwidth" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If posit is 'manual', this sets the width of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendvalues" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The values to use in the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendheight" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If posit is 'manual', this sets the height of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="itemnums" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Number of items in the legend. (a.k.a. Number of pie pieces.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hlcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The highlight color of individual legend items. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="charttype" type="xs:string" default="$once{typeof linechart != 'undefined' ?                 (parent instanceof lz.linechart ? 'line' : null) : null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The type of chart associated with this legend.
            Currently, only needs to be specified if this
            is used on a piechart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="centery" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Center x coordinate of the pie.  This helps determine
            placement. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="centerx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Center x coordinate of the pie.  This helps determine
            placement. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the border around the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the border around the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="backcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background color of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetabpane" type="lzx:basetabpane" >
</xs:element>
  <xs:complexType name="basetabpane" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="tabclass" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The tabclass to use to instantiate its associated tab. This
              overrides the basetabs tabclass. Leave undefined here so that
              basetabs can have it.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tab" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The tab associated with this basetabpane.
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selected" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If a basetabpane is selected, then it will be shown.
              Its associated tab will be also be selected. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_top" type="lzx:number" default="${parent.inset_top}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Top inset for basetabpane in tabs content. Default is basetabs's
              inset_top. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_right" type="lzx:number" default="${parent.inset_right}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Right inset for basetabpane in tabs content. Default is basetabs's
              inset_right. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_left" type="lzx:number" default="${parent.inset_left}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Left inset for basetabpane in tabs content. Default is basetabs's
              inset_left. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_bottom" type="lzx:number" default="${parent.inset_bottom}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Bottom inset for basetabpane in tabs content. Default is basetabs's
              inset_bottom. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_dbg_lzvdrag" type="lzx:_dbg_lzvdrag" >
</xs:element>
  <xs:complexType name="_dbg_lzvdrag" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:state">
      <xs:attribute name="ydoffset" type="xs:string" default="this.getMouse( 'y' )" >
</xs:attribute>
      <xs:attribute name="y" type="xs:string" default="${this.immediateparent.getMouse( 'y' ) - this.ydoffset}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="b" type="lzx:b" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="b" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
  </xs:complexType>
<xs:element name="scrolledittext" type="lzx:scrolledittext" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Implements visual baseedittext with scrollbar. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="scrolledittext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseedittext">
      <xs:attribute name="vscrollbarclassname" type="xs:string" default="vscrollbar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Name of class to instantiate for vertical scroll bar.
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pos" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="maxtextheight" type="xs:string" default="${this.lineheight * this.maxscroll}" >
</xs:attribute>
      <xs:attribute name="maxheight" type="xs:string" default="${this.height + this.maxtextheight}" >
</xs:attribute>
      <xs:attribute name="border" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Implements visual baseedittext with scrollbar. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="a" type="lzx:a" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="a" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="target" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The value of this attribute determines where the link target will be displayed. The interpretation is the same as in HTML, where the "current frame" is the frame containing the LZX application. The value must be a name beginning with an alphabetic character, or one of the following:

_blank
    The user agent should load the designated document in a new, unnamed window. 
_parent
    The user agent should load the document into the full, original window (thus canceling all other frames). This value is equivalent to _self if the current frame has no parent. 
_self
    The user agent should load the document in the same frame as the element that refers to this target. 
_top
    The user agent should load the document into the immediate FRAMESET parent of the current frame. This value is equivalent to _self if the current frame has no parent. 

	 </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="href" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	The link target </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="linechart" type="lzx:linechart" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A chart class that renders as lines.
      Inherits from the chart class.
      (Warning: Of beta quality.)
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="linechart" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basechart">
      <xs:attribute name="onminimum" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whenever minimum, maximum, altminimum and altmaximum are changed, the
            chart needs to be redrawn entirely.  (Normally, tick and data labels aren't
            redrawn, because it would be far too huge a resource drag to continually
            break down and rebuild them whenever a person zoomed in.  Instead, they're
            constrained to scale to the appropriate distances from each other.)  When
            the mins and maxes are changed, however, the scaling gets thrown off for
            existing objects.  These handlers ensures that when these values are changed,
            the labels are broken down and redrawn. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmaximum" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onaltminimum" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onaltmaximum" type="xs:string" >
</xs:attribute>
      <xs:attribute name="drawready" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Line drawview.  This draws all the lines of the chart. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="sessionrpc" type="lzx:sessionrpc" >
</xs:element>
  <xs:complexType name="sessionrpc" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:rpc">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="styleparser" type="lzx:styleparser" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
This class complete the chart style class in case the developer has not defined the chart styles </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="styleparser" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="style" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The user's defined style. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="isleaf" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Test if the current style's node has no more children </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="haschildren" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Test if the current style's node has children </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultstyle" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The dafault defined style. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tickstyle" type="lzx:tickstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 tickstyle is used by the axis style to render major and minor ticks on a chart.
     NOTE: tickstyle extends linestyle
     @access public
     </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="tickstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:linestyle">
      <xs:attribute name="position" type="xs:string" default="inside" >
<xs:annotation>
<xs:documentation xml:lang="en">
 inside | outside | centered | none  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="length" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 length of tick in pixels perpendicualr to the axis </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="constantboundslayout" type="lzx:constantboundslayout" >
</xs:element>
  <xs:complexType name="constantboundslayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="value" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The constant value that is applied to the attribute
              ( defined in 'axis' as 'x' or 'y' ) of each subview in the layout. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates either 'x' or 'y'.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="printer" type="lzx:printer" >
</xs:element>
  <xs:complexType name="printer" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="i" type="lzx:i" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="i" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
  </xs:complexType>
<xs:element name="valuepointstyle" type="lzx:valuepointstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 valuepointstyle is used to set style to the 
     NOTE: valuelinestyle extends basestyle
     @access public
     </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="valuepointstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="u" type="lzx:u" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="u" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
  </xs:complexType>
<xs:element name="hscrollbar" type="lzx:hscrollbar" >
</xs:element>
  <xs:complexType name="hscrollbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basescrollbar">
      <xs:attribute name="disabledbgcolor" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If this is defined, it will be used as the scrollbar's background
          color when it is disabled. If not provided, the scrollbar will use
          the bgcolor of its closest parent that has a bgcolor defined.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="legend" type="lzx:legend" >
<xs:annotation>
<xs:documentation xml:lang="en">

     simple legend class
     @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="legend" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="verticalgap" type="lzx:number" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="topmargin" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="styleBorder" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the style will be applied tho the border legend box </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rightmargin" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="position" type="xs:string" default="right" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates where the legend box will be positioned, default: right </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onitemmouseup" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event that allows custom action for mouse up event
            @param Number item: The identifier legend item
         </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onitemmouseover" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event that allows custom action for mouse over event
            @param Number item: The identifier legend item
         </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onitemmouseout" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event that allows custom action for mouse out event
            @param Number item: The identifier legend item
         </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onitemmousedown" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event that allows custom action for mouse down event
            @param Number item: The identifier legend item
         </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onitemmouseclick" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event that allows custom action for mouse click event
            @param Number item: The identifier legend item
         </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendborder" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates if legend box will have a border, default: true </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendFontsize" type="lzx:size" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the Font size wiil be used in the legend item text, default: 10px </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendFontcolor" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the Font color wiil be used in the legend item text, default: black </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendFont" type="xs:string" default="serif" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the Font will be used in the legend item text </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="leftmargin" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fillColor" type="lzx:color" default="0xFFFFFF" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Allow to set the fill color from the legend tag </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="direction" type="xs:string" default="vertical" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates how the legend items will be displayed, default: vertical </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="chartClassName" type="xs:string" default="${null}" >
</xs:attribute>
      <xs:attribute name="chart" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Takes the relationship with the chart </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bottommargin" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderWidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Allow to set the line width from the legend tag </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderColor" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Allow to set the color line from the legend tag </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="p" type="lzx:p" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="p" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
  </xs:complexType>
<xs:element name="library" type="lzx:library" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The &lt;library&gt; tag defines the root element of a library file. An application can use the &lt;include&gt; tag to include the code in a library file.

See the Guide for a complete discussion. Also see the &lt;include&gt; tag. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="library" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="validate" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If false, disables validation against the schema during compilation. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proxied" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The &lt;library&gt; tag defines the root element of a library file. An application can use the &lt;include&gt; tag to include the code in a library file.

See the Guide for a complete discussion. Also see the &lt;include&gt; tag. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="javarpc" type="lzx:javarpc" >
</xs:element>
  <xs:complexType name="javarpc" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:rpc">
      <xs:attribute name="scope" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 One of 'session', 'webapp', or 'none' to set the scope of the
              remote object. This attribute must be set before creating or
              loading the object. If scope is 'session' or 'webapp', name or
              attributename must be set. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="remoteclassname" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The remote class name associated with the remote object. This must
              be set if creating the remote object. If loading the object, the
              classname will be set during onload. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="objectreturntype" type="xs:string" default="pojo" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Used to determine what server-side object member values are
              returned to the client. One of 'pojo' (returns public member
              values) or 'javabean' (returns members that have associated
              getters). Default is 'pojo' (plain old java object). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="loadoption" type="xs:string" default="loadcreate" >
<xs:annotation>
<xs:documentation xml:lang="en">
 One of 'loadcreate', 'loadonly', or 'create'. 'Loadcreate' tries
              to load javarpc object if it exists in the server, else it creates
              it before loading. 'Loadonly' will only load object if it exists,
              else an error is returned. 'Create' will always create the object
              in the server. Default is 'loadcreate'. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="createargs" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Used if loadoption='loadcreate' or loadoption='create'. Arguments
              to construct remote object with. The value passed in must be an
              array, e.g., [1, 'mystring', 1.45]. Default is null. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="attributename" type="xs:string" default="$once{this.name}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Attribute name of server remote object. Name or attributename must
              be set when scope is 'session' and 'webapp'. Default is the name
              of this object. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chart" type="lzx:chart" >
<xs:annotation>
<xs:documentation xml:lang="en">

        chart is the base class representing a chart. In general,
        this class is not instantiated directly. A chart contains 
            at least one dataseries element 
            at least one axis element 
        The chart needs to look at its dataseries children and pass 
        the relevant dataseries to each axis. Relevent dataseries 
        for the chart must have columns for each of the axes 
        that the chart cares about.  
        @access public
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="chart" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="zoomEnabled" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable zoom</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="verticalGap" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The vertical blank space between components. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="valueregionsenabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable value region </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="valuepointsenabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable value points </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="valuelinesenabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable value lines </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="topMargin" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The blank space bordering the top of the chart area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rightMargin" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The blank space bordering the right side of the chart area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotarea" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="leftMargin" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The blank space bordering the left side of the chart area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="initdone" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 subview have  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="horizontalGap" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The horizontal blank space between components. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultstyle" type="xs:string" default="${defaultchartstyle}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The default style to be applied to the chart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultRightMargin" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The default blank space bordering the right side of the chart area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datatipEnabled" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable tooltip for data </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datatipColumn" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 data column name of the tooltip </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datalabelEnabled" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable data label </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datalabelColumn" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 data column name of the data label </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="databorderEnabled" type="lzx:boolean" default="true" >
</xs:attribute>
      <xs:attribute name="dataPointsEnabled" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable data point(data marker) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bottomMargin" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The blank space bordering the bottom of the chart area. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="resizestate" type="lzx:resizestate" >
<xs:annotation>
<xs:documentation xml:lang="en">
 resizes its immediateparent in response to mouse events, when applied </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="resizestate" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:state">
      <xs:attribute name="width" type="xs:string" default="${this.immediateparent.getMouse( 'x' )- this.__resize_xroffset}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="height" type="xs:string" default="${this.immediateparent.getMouse( 'y' )- this.__resize_yroffset}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="lzcombobox" type="lzx:lzcombobox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Subclass of basedatacombobox with laszlo mail look. See basedatacombobox for
          details. Usage:
          &lt;code&gt;
          &lt;dataset name="dsHours"&gt;
              &lt;item value="1"&gt;1&lt;/item&gt;
              &lt;item value="2"&gt;2&lt;/item&gt;
              &lt;item value="3"&gt;3&lt;/item&gt;
              &lt;item value="4"&gt;4&lt;/item&gt;
              &lt;item value="5"&gt;5&lt;/item&gt;
              &lt;item value="6"&gt;6&lt;/item&gt;
              &lt;item value="7"&gt;7&lt;/item&gt;
              &lt;item value="8"&gt;8&lt;/item&gt;
              &lt;item value="9"&gt;9&lt;/item&gt;
              &lt;item value="10"&gt;10&lt;/item&gt;
              &lt;item value="11"&gt;11&lt;/item&gt;
              &lt;item value="12"&gt;12&lt;/item&gt;
          &lt;/dataset&gt;

          &lt;lzcombobox width="50" shownitems="3" itemdatapath="dsHours:/item"&gt;
              &lt;handler name="onselect" args="dptr"&gt;
                  Debug.write('value:', this.value);
                  Debug.write('datapointer:', dptr);
              &lt;/handler&gt;
          &lt;/lzcombobox&gt;
          &lt;/code&gt;
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="lzcombobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatacombobox">
      <xs:attribute name="tooltip" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 tooltip text, if any </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="texty" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="textx" type="xs:string" default="8" >
</xs:attribute>
      <xs:attribute name="frnum" type="xs:string" default="1" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="splash" type="lzx:splash" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Controls the presentation while the application is loading.  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="splash" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="y" type="xs:string" >
</xs:attribute>
      <xs:attribute name="x" type="xs:string" >
</xs:attribute>
      <xs:attribute name="resource" type="xs:string" >
</xs:attribute>
      <xs:attribute name="ratio" type="xs:string" >
</xs:attribute>
      <xs:attribute name="persistent" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Controls the presentation while the application is loading.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="center" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="ticks" type="lzx:ticks" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="ticks" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="numticks" type="xs:string" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="opttree" type="lzx:opttree" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A keyboard navigable (with arrow keys) tree control that supports 
         selection and dynamic data loading. This tree must be backed by an
         XML DOM datastructure and presented within a clipping region. 
         
         The datapath for an opttree must resolve to a single LzDataElement
         which is the undisplayed root of the tree. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="opttree" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="openattrpath" type="xs:string" default="@__OPTTREE_META_open" >
<xs:annotation>
<xs:documentation xml:lang="en">
 (Protected) An xpath that selects the openattr attribute from
              a node. This should match openattr but prepend the '@' symbol.
              This cannot be when=always or when=once because it is used as
              a reference in a $path expression in baseopttreenode </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="openattr" type="xs:string" default="__OPTTREE_META_open" >
<xs:annotation>
<xs:documentation xml:lang="en">
 (Protected) The attribute name to use in the data to mark a
              a node as open.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="nodepath" type="xs:string" default="*" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The xpath expression to use to retrieve nodes out of the 
              datapath. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="nodelist" type="xs:string" default="nodecollection" >
</xs:attribute>
      <xs:attribute name="nodecollection" type="xs:string" default="${ opttreecontroller.nodelist }" >
</xs:attribute>
      <xs:attribute name="nodeclass" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name of the class to use to represent nodes in the tree.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="movedel" type="xs:string" default="$once{ new lz.Delegate( this, '_updatePos' ) }" >
</xs:attribute>
      <xs:attribute name="highlighted" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The keyboard nav highlighted baseopttreenode or null. This
              attribute is read-only. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dragged" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="dragee" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="depthattrpath" type="xs:string" default="@__OPTTREE_META_depth" >
<xs:annotation>
<xs:documentation xml:lang="en">
 (Protected) An xpath that selects the depthattr attribute from
              a node. This should match depthattr but prepend the '@' symbol.
              This cannot be when=always or when=once because it is used as
              a reference in a $path expression n baseopttreenode </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="depthattr" type="xs:string" default="__OPTTREE_META_depth" >
<xs:annotation>
<xs:documentation xml:lang="en">
 (Protected) The attribute name to use in the data to mark a
              a node's depth in the tree hierarchy </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="lzedittext" type="lzx:lzedittext" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Implements the laszlo look of baseedittext. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="lzedittext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseedittext">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="piepiece" type="lzx:piepiece" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private 
   Represents a single pie slice in the chart </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="piepiece" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="yRadius" type="lzx:number" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The y radius of the slice. default = null </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tooltip" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private 
   Represents a single pie slice in the chart </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="radius" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The length of the radius in pixels </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="piecevalue" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The numeric value of the piece. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pieceradius" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The radius of the whole pie. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pieceopacity" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The opacity of the piece.  Determined by attributes on dataseries. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="piececolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the piece.  Determined by attributes on dataseries. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onexploded" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The events that handle explosion of pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="label" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The data label of this pie slice </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="exploded" type="lzx:boolean" default="${parent.wedgeover == this}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether this piece is moused over or not. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="explode" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to actually move the piece outward when the mouse is over it. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="centery" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The y coordinate of the center of the pie. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="centerx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The x coordinate of the center of the pie. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the border of the piece.  Determined by attributes
            on dataseries. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordercolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the border of the piece.  Determined by attributes
            on dataseries. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="arcvalue" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The segment of the circle that defines the current pie slice </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="angle" type="lzx:number" default="25" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datevalidator" type="lzx:datevalidator" >
</xs:element>
  <xs:complexType name="datevalidator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevalidator">
      <xs:attribute name="invalidyearErrorstring" type="xs:string" default="Please enter a year between 0 and 9999." >
</xs:attribute>
      <xs:attribute name="invalidmonthErrorstring" type="xs:string" default="Please enter a month between 1 and 12." >
</xs:attribute>
      <xs:attribute name="invalidformatErrorstring" type="xs:string" default="Please input the date in a valid format." >
</xs:attribute>
      <xs:attribute name="invaliddateErrorstring" type="xs:string" default="Please enter a valid date." >
</xs:attribute>
      <xs:attribute name="format" type="xs:string" default="mm/dd/yyyy" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="br" type="lzx:br" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="br" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
  </xs:complexType>
<xs:element name="basescrolltrack" type="lzx:basescrolltrack" >
</xs:element>
  <xs:complexType name="basescrolltrack" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebuttonrepeater">
      <xs:attribute name="direction" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The direction in which the scroll should move. Set to -1 for back,
             1 for forward. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="vbox" type="lzx:vbox" >
</xs:element>
  <xs:complexType name="vbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="spacing" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="inset" type="xs:string" default="0" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="remotecall" type="lzx:remotecall" >
</xs:element>
  <xs:complexType name="remotecall" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="remotecontext" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If set, this is the remote object context in which funcname is run
              from. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onerror" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is triggered when an error occurs. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inforeturnvalue" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, a remote response returns an object. The object of a
             successful response will contain the return value (data), an object
             containing specific information about the request (info), and the
             associated unique sequence request number (seqnum), e.g., { data:
             ..., info: ..., seqnu: ...}. A failure response returns an object
             that contains the error message (message), the error type (error),
             an object containing specific information about the request (info),
             and the associated unique sequence request number (seqnum), e.g., {
             message: ..., error: ..., info: ..., seqnum: ...}. If false, an
             error just returns the error message and a successful response
             returns a value. Default is false. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="funcname" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Name of remote function this remotecall refers. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataobject" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If an LzDataset or an LzDataElement is set, return values will
              be mapped into the dataobject. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basescrollarrow" type="lzx:basescrollarrow" >
</xs:element>
  <xs:complexType name="basescrollarrow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebuttonrepeater">
      <xs:attribute name="direction" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The direction in which the scroll should move. Use -1 to go
                  back. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="zoomarea" type="lzx:zoomarea" >
<xs:annotation>
<xs:documentation xml:lang="en">
 chart zoom area </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="zoomarea" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basezoomarea">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="simpleslider" type="lzx:simpleslider" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="simpleslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:custombaseslider">
      <xs:attribute name="value" type="xs:string" default="this.minlimit + this.knob.x * this.valueratio" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minx" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="maxx" type="xs:string" default="$once{parent.width}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="hbox" type="lzx:hbox" >
</xs:element>
  <xs:complexType name="hbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="spacing" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="inset" type="xs:string" default="0" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="timetext" type="lzx:timetext" >
</xs:element>
  <xs:complexType name="timetext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:text">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="plotstyle" type="lzx:plotstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style for plot area
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="plotstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
      <xs:attribute name="linesize" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 size of border of the plot area </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="linecolor" type="lzx:color" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color of the border for the plot area </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fillcolor" type="lzx:color" default="0xFFFFFF" >
<xs:annotation>
<xs:documentation xml:lang="en">
 bgcolor for the plot area </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="wholepie" type="lzx:wholepie" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is the class that assembles and contains all the elements
        of an individual pie.  Nearly all of the attributes are set when the
        object is instantiated by piechart.  There should be one of these
        for each dataseries.  (Of beta quality.) </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="wholepie" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="wedgeover" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Wedge the mouse is currently over </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showlegendminimized" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to show the legend when the chart is minimized, when
            there are multiple charts. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="radiusvalues" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of the radius alterations for pie
            pieces, if any. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="piecevalues" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of the values of individual pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="opacvalues" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of piece opacity values. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltitle" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Title of the legend, if any. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lhlcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Highlight color of an individual legend element, when
            moused over. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendy" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the y coordinate of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the x coordinate of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendwidth" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the width of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendvalues" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of the values to use in the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendtitleposition" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The position of the title: left, right, center. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendheight" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the height of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legend" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to include a legend, and if so, where to place it. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lborderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Border width of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lborder" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Border color for the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lbgcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Background color of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelvalues" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of the label values for pie pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labeltsize" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of label text sizes for pie pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labeltcolor" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of label text colors for pie pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelcolors" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of label colors for pie pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelbwidth" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of label border widths for pie pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelborders" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of label borders for pie pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="explode" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether or not to explode the pie pieces onmouseover. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="expanded" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If there are multiple charts, this indicates whether this chart
            is currently expanded. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawbgborder" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw the background border around the circle
            behind the pie pieces, and if so, what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawbg" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw the background circle behind the pie pieces,
            and if so, what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="colorvalues" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of the colors of individual pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderwidths" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of border widths of individual pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordercolors" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array of border colors of individual pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgborderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the background border around the circle
            behind the pie pieces. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="statictext" type="lzx:statictext" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A simple text class that provide default font attributes for
          Laszlo components. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="statictext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:text">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="purplestyle" type="lzx:purplestyle" >
</xs:element>
  <xs:complexType name="purplestyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:style">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="custombaseslider" type="lzx:custombaseslider" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="custombaseslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="valueratio" type="xs:string" default="(this.maxlimit  - this.minlimit) / this.width" >
</xs:attribute>
      <xs:attribute name="startlabel" type="xs:string" default="this.minlimit" >
</xs:attribute>
      <xs:attribute name="minordivision" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="minlimit" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="maxlimit" type="xs:string" default="100" >
</xs:attribute>
      <xs:attribute name="majordivision" type="xs:string" default="2" >
</xs:attribute>
      <xs:attribute name="endlabel" type="xs:string" default="this.maxlimit" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basebutton" type="lzx:basebutton" >
</xs:element>
  <xs:complexType name="basebutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="respondtomouseout" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If this button does not respond to onmouseout or onmousedragout
              events, set this flag to false. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resourceviewcount" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The first 'n' subviews that will respond to mouseevents by
              changing the frame number of their resource. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="reference" type="xs:string" default="this" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Where to send mouse events (the view that will be "clickable").
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="overResourceNumber" type="lzx:number" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The resource for the mouse over state. 
              Use 0 if the resource has at least 2 frames, but there is no over
              state.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onresourceviewcount" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is sent when the resourceviewcount changes. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="normalResourceNumber" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The resource for the mouse up state, and initial state of the
              button.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxframes" type="lzx:number" default="$once{this.totalframes}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum number of frames to use, defaults to the number of
              frames for the resource associated with this view. This is useful
              for a subclass that has no resource for this view.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="downResourceNumber" type="lzx:number" default="3" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The resource for the mouse down state.
              Use 0 if the resources has at least 3 frames, but there is no down
              state.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="disabledResourceNumber" type="lzx:number" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The resource for the disabled state.
              Use 0 if the resource has at least 4 frames, but there
              is no disabled state.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="PopupPolygon" type="lzx:PopupPolygon" >
</xs:element>
  <xs:complexType name="PopupPolygon" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:polygonhotspot">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
      <xs:attribute name="parentView" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="text" type="lzx:text" >
<xs:annotation>
<xs:documentation xml:lang="en">
The basic text display element. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="text" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="yscroll" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The y scroll offset of the content in pixels (a negative number specifying how many pixels the content should be scrolled vertically). Default 0. NOTE: A constraint or handler on onyscroll will automatically enable updating the attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xscroll" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The x scroll offset of the content in pixels (a negative number specifying how many pixels the content should be scrolled horizontally). Default 0. NOTE: A constraint or handler on onxscroll will automatically enable updating the attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="thickness" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The thickness for this text, between -200 and 200, Flash only</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textindent" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  textindent accepts any number which is interpreted as a px value</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textdecoration" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  text-decoration for this text, either 'none' or 'underline'.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textalign" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  textalign accepts one of [left, right, center, justify]</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The text to display in this text field. If set to a value that is not a string, the value will first be converted to a string as if by String(value). To display nothing, set the value to the empty string "". </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sharpness" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The sharpness for this text, between -400 and 400, Flash only</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectable" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
  If true, the text is selectable </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollwidth" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The total width of the content in pixels. this.setAttribute('width', this.scrollwidth) is equivalent to this.setAttribute('width', null) (for the current content: the former will not follow content changes as the latter does). If this.scrollwidth &gt; this.width, this.setAttribute('yscroll', this.width - this.scrollwidth) will cause the end of content to be visible at the edge of the view. (The rightmost content will appear at the right edge of the view for left-to-right scripts.) NOTE: A constraint or handler on onscrollwidth will automatically enable updating the attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollheight" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The total height of the content in pixels. this.setAttribute('height', this.scrollheight) is equivalent to this.setAttribute('height', null) (for the current content: the former will not follow content changes as the latter does). If this.scrollheight &gt; this.height, this.setAttribute('yscroll', this.height - this.scrollheight) will scroll the content so that the bottom of the content appears in the bottom of the view. NOTE: A constraint or handler on onscrollheight will automatically enable updating the attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollevents" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
  Use setAttribute('scrollevents', true) to cause scroll events to be sent. NOTE: A constraint or handler on onyscroll, onscroll, onxscroll, onhscroll, onscrollheight, onmaxscroll, onscrollwidth or onmaxhscroll will automatically enable scrollevents. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scroll" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The vertical scroll position (in lines, 1-based). Default 1.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resize" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
  If true, the width of the text field will be recomputed each time text is changed, so that the text view is exactly as wide as the width of the widest line. Defaults to true. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pattern" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  regexp describing set of characters allowed in this field Restrict the characters that can be entered to a pattern specified by a regular expression. Currently only the expression [ ]* enclosing a set of characters or character ranges, preceded by an optional "^", is supported. examples: [0-9]* , [a-zA-Z0-9]*, [^0-9]* </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onyscroll" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onxscroll" type="xs:string" >
</xs:attribute>
      <xs:attribute name="ontextlink" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onselectable" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onscrollwidth" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onscrollheight" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onscrollevents" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onscroll" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onpattern" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onmaxscroll" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onmaxlength" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onmaxhscroll" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onlineheight" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onhscroll" type="xs:string" >
</xs:attribute>
      <xs:attribute name="ondirection" type="xs:string" >
</xs:attribute>
      <xs:attribute name="multiline" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
  If true, the lines of text are wrapped to fit within the text width. (The name multiline is a misnomer. Unwrapped text can be multiple lines if it contains a &lt;br /&gt; or &lt;p&gt; element, or a line break within a &lt;pre&gt; element. This attribute defaults to true if width and height are explicitly specified. If you set multiline=true, you probably want to explicitly a width for the text also; if multiline=true and you do not specify a width, the system will pick an arbitrary width (100 pixels at the moment). When multiline=true, the text is automatially re-wrapped whenever the content is modified by calls to setText, or whenever the width of the text view is modified. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxscroll" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The maximum vertical scroll position (in lines, 1-based). this.setAttribute('scroll', this.maxscroll) will cause the last line of the content to be visible at the bottom of the view (hence this is the line number of the line that will appear at the top of the view when scrolled all the way to the bottom). NOTE: A constraint or handler on onmaxscroll will automatically enable updating the attribute.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxlength" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  Maximum number of characters allowed in this field </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxhscroll" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The maximum horizontal scroll position in pixels. this.setAttribute('hscroll', this.maxhscroll) will cause the end of content to be visible at the edge of the view. (The rightmost content will appear at the right edge of the view for left-to-right scripts, hence this is the pixel position of the leftmost pixel that will appear in the view when scrolled all the way to the right.) NOTE: A constraint or handler on onmaxhscroll will automatically enable updating the attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lineheight" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The height of a line of text in the current style </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="letterspacing" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  letterspacing accepts any number which is interpreted as a px value </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hscroll" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The horizontal scroll position in pixels. Default 0. NOTE: A constraint or handler on onhscroll will automatically enable updating the attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="gridFit" type="xs:string" default="none|pixel|subpixel" >
<xs:annotation>
<xs:documentation xml:lang="en">
  Grid fit for this text, Flash only One of:  "none" | "pixel" | "subpixel" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="direction" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  Text direction, either "ltr" (default) or "rtl", Flash only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cdata" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  An alias for the text attribute, but with the type cdata, allowing it to be bound to a value that should not be interpreted as markup (when data binding, CSS style binding, or ??? or ???). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="antiAliasType" type="xs:string" default="normal|subpixel|advanced" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Antialias type for this text, Flash only One of:  "normal" | "subpixel" | "advanced" </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="submit" type="lzx:submit" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Associates a form with a dataset. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="submit" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="status" type="xs:string" default="ok" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Read-only status of data request. Possible values are 'ok',
              'requesting', and 'error'. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="error" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Error from most recent response or empty string; cleared to empty
              string each time a request on the dataset is made. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataset" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The dataset that specifies the request url, which will also hold
              the result of the query. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetabscontent" type="lzx:basetabscontent" >
</xs:element>
  <xs:complexType name="basetabscontent" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chartactionhelper" type="lzx:chartactionhelper" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private 
        class that help with the zoom animation and undo ability
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="chartactionhelper" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="chart" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private 
        class that help with the zoom animation and undo ability
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="animateProgress" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="actionlist" type="xs:string" default="[]" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="TestResult" type="lzx:TestResult" >
<xs:annotation>
<xs:documentation xml:lang="en">

  A TestResult accumulates the results of a test run: the total number
  of tests run, the number of failures, and the number of errors.  A
  TestResult is automatically created by a TestSuite and included as
  its first child view so the results of the test suite will be
  displayed.

  See the documentation for &lt;xref linkend="lz.TestSuite"/&gt;
  for an example of this tag.
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="TestResult" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:DebugObject">
      <xs:attribute name="messages" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="lzcombobox_item" type="lzx:lzcombobox_item" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Class used as the default item class in lzcombobox. See lzcombobox's
          itemclassname attribute. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="lzcombobox_item" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatacombobox_item">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basesliderthumb" type="lzx:basesliderthumb" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Basesliderthumb expects to be within a baseslidertrack (or its
          subclass). In other words, its "classroot" should be a slidertrack. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basesliderthumb" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:button">
      <xs:attribute name="showvalue" type="xs:string" default="${this.parent.parent.showvalue}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Toggles the floating value text when dragging thumb. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="canvas" type="lzx:canvas" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
The canvas is the container for all views within an application.

The lz.canvas class represents the viewable area of the application. There is one instance of lz.canvas, named canvas. The canvas contains all views within an application.

The &lt;canvas&gt; tag is the document root of an LZX application file. It contains class, resource, and font definitions, library includes, and view and other instances.

See the Guide for a complete discussion of the &lt;canvas&gt; tag. 
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="canvas" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="title" type="xs:string" default="string" >
</xs:attribute>
      <xs:attribute name="scriptlimits" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   A CSS declaration of property: value pairs used to advise the underlying runtime of desired recursion and timeout limits. Not all runtimes respect this advice. The default value is runtime dependent, but typically recursion is at least 100 and timeout at least 10 (seconds). Example: scriptlimits="recursion: 256, timeout: 15"</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="screenorientation" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
   Used to tell what the screen orientation is, 'portrait' or 'landscape' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="runtime" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   A String describing the target runtime. "dhtml" | "swf8" | "swf9" | "swf10" are currently supported. Others are in development.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proxied" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, requests for data and media are proxied through LPS server. if false, requests are made directly to target URLs. if inherit, inherit from lzproxied query arg. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="percentcreated" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
   A number from 0-1 that represents the percentage of the app that has been instantiated.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="medialoadtimeout" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
   If present, specifies the default timeout in milliseconds for media load requests </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mediaerrortimeout" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
   If present, specifies the default timeout in milliseconds for media errors. An error occurs when no bytes have been received. This is used in Flash to detect media loads that have failed due to the security policy. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lpsversion" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 version number of the LPS that generated this application (for .lzo files, this is the version number of the server that generated the optimized file, not the one that served it). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lpsrelease" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   release of the LPS that generated this application (for .lzo files, this is the release of the server that generated the optimized file, not the one that served it). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lpsbuilddate" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   A String specifying the date and time of the LPS build. "2007-03-05T15:33:42-0800" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lpsbuild" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   A String specifying the LPS build revision and the build directory: e.g. "4075 /Users/maxcarlson/openlaszlo/legals" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="httpdataprovider" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   
httpdataprovider is bound to the system default HTTP DataProvider.
This will be an instance of LzHTTPDataProvider, which implements HTTP request transport. The default value of the canvas.defaultdataprovider is initially set to point to this same object. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fullscreen" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
   Used to switch into fullscreen display mode or back to normal display. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="framerate" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The framerate that should be used for this application </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultdataprovider" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
defaultdataprovider is bound to the system default DataProvider.
By default, this will be an instance of LzHTTPDataProvider, which will also be pointed to by the canvas.httpdataprovider. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="debug" type="xs:string" default="boolean" >
</xs:attribute>
      <xs:attribute name="datasets" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
   Dictionary of all named datasets. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataloadtimeout" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
   If present, specifies the default timeout in milliseconds for data load requests </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="appbuilddate" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  A String specifying the date and time of the application build. "2008-09-12T14:15:12Z" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="allowfullscreen" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether fullscreen display state is supported for the SWFx runtimes. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="label" type="lzx:label" >
<xs:annotation>
<xs:documentation xml:lang="en">

      An abstract class that applies all features label.
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="label" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="style" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the style will be applied
            @keyword private</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rvaly" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The original y value for this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rvalx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The original x value for this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltextsize" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text size of this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltext" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text of this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltcolor" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the text of this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lbwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the border of this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lborder" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the border of this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fadein" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to initially fade this label in. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="enableCache" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="rte" type="lzx:rte" >
</xs:element>
  <xs:complexType name="rte" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:html">
      <xs:attribute name="wrapperfile" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Location of the html wrapper file used by the editor.
          An empty string (default) loads the system wrapper file.
          If a custom wrapper file is used, the path is relative to where
          the application runs from.
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="toolbar_order" type="xs:string" default="undo,redo,|,cut,copy,paste,|,bold,italic,underline,strikethrough,|,insertOrderedList,insertUnorderedList,indent,outdent,|,justifyLeft,justifyRight,justifyCenter,justifyFull,|,foreColor,hiliteColor,|,createLink,unlink,insertImage,|,print,smiley,||,fontName,fontSize" >
<xs:annotation>
<xs:documentation xml:lang="en">
 dijit.Editor toolbar order. The list of items to show in the editor
          toolbar. The default is to show all toolbar features.
          A '|' inserts a separator between blocks of toolbars. 
          A '||' will force a linebreak in the toolbar.
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The initial value of the text to edit. The text is updated while
          the rte is running.
          @type html
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ontext" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The ontext event is generated whenever the rte text content changes. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oneditorready" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The oneditor event is generated whenever the rte editor is completely loaded. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="on_text" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="on_rte_loaded" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="on_editorready" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="extra_plugins" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Comma-separated list of additional dijit.Editor plugins to load.
          An empty string (default) will load only the plugins used by default.
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="editorready" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the rte editor is ready to receive commands
          @type Boolean
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dojo_theme" type="xs:string" default="tundra" >
<xs:annotation>
<xs:documentation xml:lang="en">
 dojo theme to use. Default value is 'tundra'
          Other values in dojo 1.5 are soria, nihilo, claro
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dojo_root" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 root url where Dojo library is loaded. An empty string (default)
          will load the library from Google. This path must end with a '/'.
          For example, if you have a local version located at /trunk, 
          you would specify something like '/trunk/dojo-release-1.5.0/'.
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dojo_locale" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 dojo locale to use. Default value is '' which will use the
          locale from the browser.
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dojo_js" type="xs:string" default="dojo/dojo.js" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Dojo library to load (relative to dojo_root). This value is
          ignored if dojo_root is empty. Default value is 'dojo/dojo.js'.
          If you want to load an uncompressed version of dojo, specify
          'dojo/dojo.js.uncompressed.js'
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dojo_css" type="xs:string" default="dijit/themes/" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Dojo stylesheet root (relative to dojo_root). This value is
          ignored if dojo_root is empty. Default value is 'dijit/themes/'
          @initarg String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="script" type="lzx:script" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Client executed script </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="script" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="src" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Client executed script </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="datapointer" type="lzx:datapointer" >
<xs:annotation>
<xs:documentation xml:lang="en">
The binder between data and nodes.
Datapaths are used to merge data hierarchies with the hierarchy of an OpenLaszlo application. This is done using the the XPath syntax supported by lz.datapointer. When a node is given a datapath attribute, a datapath with the given value as its XPath is created. If the datapath retrieves a node (i.e. it doesn't terminate in an attribute getter or a () operator) then the node is mapped to that data context and all child nodes will implicitly share the datacontext, but no further action is taken. If the datapath retrieves data, rather than just a node, a few extra things happen. First, the node's data property is set and the node's ondata event is sent. Second, the node's applyData method is called with the data as the argument. In cases where a datapath matches more than one data node, the view with the matching datapath is replicated once for each data node that matches, and a lz.ReplicationManager takes over the view's spot in its parent.

When a node is replicated, an LzReplicationManager takes it's place, and an onclones will be sent when the node's clones are updated.

A node can only have one datapath, and datapaths always have the name datapath. Additional options available on datapath such as pooling and replication are specified by writing the &lt;datapath&gt; tag as a separate node. 
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datapointer" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="xpath" type="xs:string" >
</xs:attribute>
      <xs:attribute name="rerunxpath" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	This determines the behavior of the datapointer in response to notification that the dataset the datapointer is mapped to has changed. If rerunxpath is true, the datapointer will always rerun its remembered XPath (set with the xpath property). If it is false, the datapointer will only verify that the node it is pointing to is still in the dataset. If it isn't, the datapointer will rerun its remembered xpath (if it has one) or will print a debug message if any further attempt is made to use its current node as the basis for a relative XPath query.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="p" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The LzDataNodeMixin that the datapointer is pointing to. Calling setAttribute on p calls LzDatapointer.setPointer.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="context" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The reference to a clonemanager from a clone. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="contextmenu" type="lzx:contextmenu" >
<xs:annotation>
<xs:documentation xml:lang="en">
A contextual menu </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="contextmenu" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="delegate" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
		Sets the delegate which will be called when a menu item is selected. An onselect event is also sent.</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basefocusview" type="lzx:basefocusview" >
</xs:element>
  <xs:complexType name="basefocusview" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="target" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 a reference to the view that is currently focused </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="duration" type="xs:string" default="400" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the duration of the animation from one focused view to the next </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="active" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 true during keyboard navigation, when this view is visible 
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="node" type="lzx:node" >
<xs:annotation>
<xs:documentation xml:lang="en">
The base class for all Laszlo classes.
JavaScript: lz.node
The lz.node class provides the basic interface for OpenLaszlo objects: parent/child hierarchy, setters, interaction with the instantiator, and reference resolution. New nodes (and subclasses thereof) can be created by new-ing the class, like this: var mynode= new LzNode( parent , args ); where parent is the parent for the new node, and args is an Object whose name/value pairs are attributes to be set on the new node.  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="node" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="transition" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Allows node attributes to be automatically animated when set. A string of transitions, according to the css3 transition spec http://dev.w3.org/csswg/css3-transitions/#the-transition-shorthand-property- e.g. 'x 2s'. Note that transition-delay is not currently supported. [transition-property || transition-duration || transition-timing-function || transition-delay [, [transition-property || transition-duration || transition-timing-function || transition-delay]]*  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="subnodes" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	An array of all of the LzNodes which consider this LzNode their parent. This list is similar to the subviews list, but it contains all the children of this node, not just the view children.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="styleclass" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	
A space-separated list of CSS classes that can be used in a stylesheet to select this node.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="placement" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Instructions to this element's container about where it should go within its container's internal hierarchy. See the LzNode.determinePlacement method. Defaults to the container itself.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="parent" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Reference to the node that was passed as this node's ancestor in the constructor. If this node was created by declaring it in a tag, the parent will be its lexical parent. Its lexical parent is the tag that encloses it. Allow a null parent so that nodes can be garbage collected when they are no longer needed. See also, immediateparent.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="options" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A CSS declaration of property: value pairs that modify the interaction of this node with controllers such as replicators and layouts. For example, setting options="ignorelayout: true" on a view will cause the view to not be controlled by any layout.
[Note] 	Note
The options that affect particular controllers and replicators are documented with each controller and replicator.
[Note] 	Note
options should not be accessed directly. You must use getOption and setOption to get or set the value of an option.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oninit" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
This event is sent after the node's init method has been called. Simple actions that need to occur after the node's children have been initialized can be assigned to this event. For more complex initialization, see the init method. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ondata" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
The ondata script is executed when the data selected by a view's datapath changes. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onconstruct" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
This is the first event a node sends, right at the end of the instantiation process, but before any subnodes have been created or references resolved </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="nodeLevel" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The depth of this node in the overall node hierarchy </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="name" type="lzx:token" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The name for this subnode. If given, then this node's parent and immediate parent will store a pointer to this node as the given name value.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="initstage" type="xs:string" default="normal" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The execution of a node's init method and sending of the oninit event is under the control of its initstage attribute, as follows:

immediate
    The init method is called immediately as the last stage of instantiation. 
early
    The init method is called immediately after the view and its children have been instantiated. 
normal
    The init method is called when the parent is initialized. 
late
    The init method is called during idle time. To check whether init has been called, check the inited property. Force calling init using the completeInstantiation method. 
defer
    The init method will not be called unless explicitly requested by the completeInstantiation method. 

	 </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inited" type="lzx:boolean" >
</xs:attribute>
      <xs:attribute name="immediateparent" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Reference to this nodes's parent in the node hierarchy. This will be different from "parent" when a class uses placement or defaultplacement to assign a subnode a specific place. For example, always use immediateparent to get a mouse position in your views coordinate system.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ignoreplacement" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Overrides placement attribute (and defaultplacement in lexical parent). See the LzNode.determinePlacement method. Defaults to false.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="id" type="lzx:token" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A unique identifier for this element. Can be used as a global variable name in JavaScript code.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultplacement" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	An attribute used in container classes. If set to a non-null value, this forces this node to run its determinePlacement method for any node whose parent is this node. If the subnode has its own placement attribute, determinePlacement will be called with that value, otherwise it will be called with this value. Note that a class's defaultplacement attribute only applies to children in subclasses or in instances, not to the children of the class itself. This means that if a class and its subclass both define a defaultplacement attribute, the attribute will be set to one value before the subclass children are created and to a different one after they are created. See the determinePlacement method.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datapath" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A shorthand version of &lt;datapath&gt;, specifies the data source for this node and its children. You write a string to datapath; reading datapath will yield a lz.datapath. If the value begins with an identifier followed by a colon, the identifier names a dataset, and the portion of the string after the colon is an XPath description of a portion of the data. Otherwise the entire attribute value is an XPath description of the data, relative to the data source of this node's parent element. Examples: "mydata:", "mydata:/a/b", "/a/b".  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="data" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The data context for the node </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cloneManager" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If this node is replicated due to data replication, the LzReplicationManager which controls this node.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="classroot" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A reference to the node that is an instance of the &lt;class&gt; where this node is defined. Members of state subclasses do not define classroot. This is convenient to use when you want to access an attribute of the class in a method or event handler that is nested deep in the node hierarchy. For example, to set the bgcolor of the class object, instead of parent.parent.parent.setAttribute(bgcolor, 0xFFFFFF) you can simply use classroot.setAttribute(bgcolor, 0xFFFFFF).  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="frame" type="lzx:frame" >
<xs:annotation>
<xs:documentation xml:lang="en">

A frame of a multi-frame resource.

The &lt;frame&gt; tag is used to define a single frame of a multi-frame &lt;resource&gt;. A multi-frame resource contains several images which can be toggled among by script commands.

Multiple frame tags can be declared consecutively to produce a single resource constructed of an unlimited number of frames. Such composed resources are often used to conveniently implement mouse rollovers, button states, or other UI elements where alternate views of a resource are required. Once a multi-frame resource has been defined and presented within a &lt;view&gt;, the developer can designate which frame is actively visible through the use of the view's setResourceNumber method.

Multi-frame resources can be used in conjunction with components such as &lt;basebutton&gt;, which pre-define complex button behavior using frames designated by the user. 

 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="frame" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="src" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The path of a file that contains the source for this object. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="name" type="lzx:token" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The name of a variable that will be set to this object when the application is started. If this element is directly within a &lt;canvas&gt; or &lt;library&gt; element, the global variable and the canvas property with this name will be set to this object. If this element is within another object, that object's property with this name will be set to this object.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="webapprpc" type="lzx:webapprpc" >
</xs:element>
  <xs:complexType name="webapprpc" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:rpc">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baseslider" type="lzx:baseslider" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The base class for implementing sliders representing a range of
              values. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="baseslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevaluecomponent">
      <xs:attribute name="trackheight" type="lzx:number" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The height of the track. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="track" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The base class for implementing sliders representing a range of
              values. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="thumbwidth" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the thumb. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="thumbheight" type="lzx:number" default="18" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The height of the thumb. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Turns on / off the floating value text when the user
              drags. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showrange" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Turns on / off the bounding range text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showfill" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Turns on / off the slider's filled area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="precision" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 significant digits of precision </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onminvalue" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onmaxvalue" type="xs:string" >
</xs:attribute>
      <xs:attribute name="minvalue" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxvalue" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="keystep" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 How far to move value when key navigating. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordersize" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The border width. This can be set with a style. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chartzoomer" type="lzx:chartzoomer" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Allows users to zoom in on specific areas of the chart.
        Click or drag right-to-left to zoom back out.  (Of beta quality.)
        Due to a bug with drawview, this doesn't currently work in DHTML. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="chartzoomer" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="zoomcolor" type="lzx:color" default="${parent.zoomcolor}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color tint of the zoomer. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="stableborderlayout" type="lzx:stableborderlayout" >
</xs:element>
  <xs:complexType name="stableborderlayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="axis" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="windowpanel" type="lzx:windowpanel" >
</xs:element>
  <xs:complexType name="windowpanel" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basewindow">
      <xs:attribute name="titlearea_inset_top" type="xs:string" default="6" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The top inset for the window title area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="title" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the title of a window : this string appears at the top
              of the window. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_top" type="xs:string" default="22" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The top inset for the window content area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_right" type="xs:string" default="11" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The right inset for the window content area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_left" type="xs:string" default="6" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The left inset for the window content area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_bottom" type="xs:string" default="20" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The bottom inset for the window content area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="closeable" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the window will have a close control. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="iconradioitem" type="lzx:iconradioitem" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the iconradioitem class is a radio button with only an icon
        @START_CODE
        &lt;iconradioitem iconname="target" /&gt;
        @END_CODE
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="iconradioitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselistitem">
      <xs:attribute name="rightrsc" type="xs:string" default="iconradiobutton_small_right_rsc" >
</xs:attribute>
      <xs:attribute name="middlersc" type="xs:string" default="iconradiobutton_small_middle_rsc" >
</xs:attribute>
      <xs:attribute name="leftrsc" type="xs:string" default="iconradiobutton_small_left_rsc" >
<xs:annotation>
<xs:documentation xml:lang="en">
 background resources </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 icon filename </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="icon_y" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 icon y position. calculated if not specified explicitly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="icon_x" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 icon x position. calculated if not specified explicitly </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="drawview" type="lzx:drawview" >
<xs:annotation>
<xs:documentation xml:lang="en">


    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
               Use is subject to license terms.

    @access public
    @affects lzdrawview
    @topic LFC
    @subtopic Views
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="drawview" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="strokeStyle" type="xs:string" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Represents the colour to use for the lines around shapes.  Specified as a hexadecimal number (0xffffff) or a CSS string ('#ff00ff' or '#f0f').
        @type String
        @lzxtype string
        @lzxdefault "#000000"
        @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="miterLimit" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Gives the default miterLimit value for lines.
          @type Number
          @lzxtype number
          @lzxdefault 10
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="measuresize" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the size of the drawview will be set dynamically based on its contents, where possible. (swf-only)
      @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lineWidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Gives the default width of lines, in coordinate space units.
          Negative values are ignored.  0 draws hairlines in swf - lines that
          are always 1 pixel wide even when scaled.
          @type Number
          @lzxtype number
          @lzxdefault 1
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lineJoin" type="xs:string" default="miter" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Gives the default lineJoin value for lines. Round for consistency between swf and dhtml.
          @type String
          @lzxtype "round" | "bevel" | "miter"
          @lzxdefault "miter"
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lineCap" type="xs:string" default="butt" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Gives the default lineCap value for lines. Round for consistency between swf and dhtml.
          @type String
          @lzxtype "butt" | "round" | "square"
          @lzxdefault "butt"
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="globalAlpha" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Gives an alpha value that is applied to shapes and images
          before they are composited onto the canvas. The valid range of
          values is from 0.0 (fully transparent) to 1.0 (no additional
          transparency). If the attribute is set to values outside this range,
          it is ignored. When the context is created, the globalAlpha
          attribute initially has the value 1.0.
          @type Number
          @lzxtype number
          @lzxdefault 1.0
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fillStyle" type="xs:string" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Represents the colour or style to use for the fill inside the shapes. Can be either a hexadecimal number (0xffffff), a CSS string ('#ff00ff' or '#f0f'), or a CanvasGradient/LzCanvasGradient.
        @type String
        @lzxtype string
        @lzxdefault "#000000"
        @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="aliaslines" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, lines will be offset by lineWidth / 2 to appear aliased (dhtml-only)
      @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="slider" type="lzx:slider" >
</xs:element>
  <xs:complexType name="slider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseslider">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="resizestatemin" type="lzx:resizestatemin" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Resizes its immediateparent with a minimum size in response to mouse events, when applied. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="resizestatemin" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:resizestate">
      <xs:attribute name="resize_min_width" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum width to resize to </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resize_min_height" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum height to resize to </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="propedit" type="lzx:propedit" >
</xs:element>
  <xs:complexType name="propedit" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:toggletext">
      <xs:attribute name="prop" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="obj" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="isnumber" type="xs:string" default="true" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="icontogglebutton" type="lzx:icontogglebutton" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the icontogglebutton class is a icon button with two states, no text. the resource passed in should
          have two frames, one for each state.
        @START_CODE
        &lt;icontogglebutton iconresource="resourcename"/&gt;
        @END_CODE
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="icontogglebutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
      <xs:attribute name="statenum" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 button state (either 0 or 1)  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="icony" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 fine-tune the vertical position of icon </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconresource" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 icon resource name </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="menuseparator" type="lzx:menuseparator" >
</xs:element>
  <xs:complexType name="menuseparator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="xinset" type="lzx:number" default="3" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the number of pixels to inset the menuseparartor from the sides of the menu </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetabsbar" type="lzx:basetabsbar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This class is a container for basetab items. It must be a child of
          basetabs. The default layout for its subviews is "class: simplelayout;
          axis: x; spacing: 0". You can pass the name of this class in the
          'barclass' attribute of tabpane, basetabpane, basetabs, and
          tabs. Basetabs uses this class as its default 'barclass'. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basetabsbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselist">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="viewlistmanager" type="lzx:viewlistmanager" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private  
        Manage a hash table of viewslist 
     </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="viewlistmanager" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="pools" type="xs:string" default="${new Object()}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private  
        Manage a hash table of viewslist 
     </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="swatchview" type="lzx:swatchview" >
<xs:annotation>
<xs:documentation xml:lang="en">
 swatchview is a simple view that is filled with a single color.
    Either 'fgcolor' and 'bgcolor' may be used to set the color of the view.
    By default it fills the space of the parent with white </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="swatchview" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="color" type="xs:string" default="0xffffff" >
<xs:annotation>
<xs:documentation xml:lang="en">
 this is the color that was set (by setting 'bgcolor' or 'fgcolor' ),
        bgcolor may be different if setColorTransform has been called
        @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="dataselectionmanager" type="lzx:dataselectionmanager" >
<xs:annotation>
<xs:documentation xml:lang="en">

   
    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
               Use is subject to license terms.
   
    @affects lzdataselectionmanager
    @access public
    @topic LFC
    @subtopic Helpers
    @devnote TODO: [20080930 anba] (LPP-6080) uncomment typing in method signatures
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="dataselectionmanager" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:selectionmanager">
      <xs:attribute name="manager" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="horizontalaxis" type="lzx:horizontalaxis" >
<xs:annotation>
<xs:documentation xml:lang="en">

     Represents the X-axis on the rectangular chart extends from Axis class
     @access public
     </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="horizontalaxis" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:axis">
      <xs:attribute name="labelLenght" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datacolumn" type="xs:string" default="x" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="constantlayout" type="lzx:constantlayout" >
</xs:element>
  <xs:complexType name="constantlayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="value" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The constant value that is applied to the attribute
          ( defined in 'axis' as 'x' or 'y' ) of each subview in the layout. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates either 'x' or 'y'.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="streamprogress" type="lzx:streamprogress" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An instance of this class will set its width relative to the
      progress of the given stream and its maxwidth attribute. It is
      green by default; however, to make it appear with a resource, you may
      set the bgcolor to null and provde a resource (and don't forget to set
      stretches attribute).
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="streamprogress" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="totaltime" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 read-only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="time" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 read-only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="stream" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 stream for which to show the progress </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="progress" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 a value between 0 and 1 indicating how much of the stream has played
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxwidth" type="lzx:number" default="${parent.width}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 max width that this will grow to (defaults to parent's width </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="multistatebutton" type="lzx:multistatebutton" >
</xs:element>
  <xs:complexType name="multistatebutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
      <xs:attribute name="statenum" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the current state </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="statelength" type="lzx:number" default="3" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the number of frames in a state </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxstate" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the largest number allowed for the value of statenum </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tabsbar" type="lzx:tabsbar" >
</xs:element>
  <xs:complexType name="tabsbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetabsbar">
      <xs:attribute name="spacing" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Spacing between tab items. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videovolumebutton" type="lzx:videovolumebutton" >
</xs:element>
  <xs:complexType name="videovolumebutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="volumeInternal" type="xs:string" default="1.0" >
</xs:attribute>
      <xs:attribute name="volume" type="xs:string" default="${this.mute ? 0.0 : this.volumeInternal}" >
</xs:attribute>
      <xs:attribute name="trackingDelegate" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="tracking" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="over" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="mute" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="adjusting" type="xs:string" default="${             this.button.over ||              this.button.tracking ||              this.adjuster.over  ||              this.adjuster.tracking}" >
</xs:attribute>
      <xs:attribute name="adjusterHeight" type="xs:string" default="100" >
</xs:attribute>
      <xs:attribute name="adjusterBorder" type="xs:string" default="2" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basescrollthumb" type="lzx:basescrollthumb" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Basescrollthumb expects to be within a basescrollbar (or a subclass).
          In other words, its "classroot" must be a scrollbar. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basescrollthumb" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="doffset" type="xs:string" default="this.getMouse( 'y' )" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tabslider" type="lzx:tabslider" >
</xs:element>
  <xs:complexType name="tabslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetabslider">
      <xs:attribute name="bordersize" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordercolor" type="lzx:color" default="${this.style != null ? this.style.bordercolor : null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The border color. Default is constrained to the 
              &lt;tagname&gt;style&lt;/tagname&gt;'s &lt;attribute&gt;bordercolor&lt;/attribute&gt; 
              value. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="style" type="lzx:style" >
<xs:annotation>
<xs:documentation xml:lang="en">
 contains style attributes which are applied to components to modify their look </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="style" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="textselectedcolor" type="lzx:color" default="black" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used as the text color with 'selectedcolor' to color the
        selected item </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="texthilitecolor" type="lzx:color" default="iceblue1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used as the text color with 'hilitecolor' to highlight an item,
        such as when mouse is over a menu item </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textfieldcolor" type="lzx:color" default="white" >
<xs:annotation>
<xs:documentation xml:lang="en">
 background color for text areas </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textdisabledcolor" type="lzx:color" default="gray60" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used as the text color when a component is disabled </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textcolor" type="lzx:color" default="gray10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color for text </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectedcolor" type="lzx:color" default="iceblue3" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used when an item is selected, such as in a list </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="menuitembgcolor" type="lzx:color" default="textfieldcolor" >
<xs:annotation>
<xs:documentation xml:lang="en">
 background color for menu items, defaults to the 'textfieldcolor' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="isstyle" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 this is a style object
          @access private
          @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="isdefault" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 if true, this style is the default style for components  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hilitecolor" type="lzx:color" default="iceblue4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used when the background color changes to highlight an item,
        such as when mouse is over a menu item </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="disabledcolor" type="lzx:color" default="gray30" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used when an item is disabled </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="canvascolor" type="lzx:color" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 canvas color, default: null (will use whatever is specified
        as the canvas bgcolor, default: white) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordersize" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the line width used in those components that have a visual border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordercolor" type="lzx:color" default="gray40" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used to color the frame of a component for those that have a visual
        border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgcolor" type="lzx:color" default="white" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used for colorizing the backgrounds of content areas, such
          as the background in tabslider's content, and window's content </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="basecolor" type="lzx:color" default="offwhite" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used for colorizing a component, components will typically use
        varying shades of this color </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basescrollbar" type="lzx:basescrollbar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Contains non-visual aspects of a scrollbar. Subclasses are expected to
          define this.thumb and this.scrolltrack to reference the views that
          perform those functions. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basescrollbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="usemousewheel" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, this scrollbar listens for mousewheel events </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="stepsize" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The amount that the scrolltarget is moved when the user clicks on
              the scrolltrack or when the step method is called. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrolltarget" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The view that is controlled by the scrollbar.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollmax" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum distance to scroll, default: the height or width
              of the scrolltarget. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollattr" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The attribute of the scrolltarget that is modified by the scrollbar,
              default: value of axis attribute.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollable" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True if the scrolltarget is bigger than the containing view
              therefore the scrollbar is active. The scrollbar appears disabled
              when scrollable is false. You can make the scrollbar invisible
              when there is nothing to scroll by setting visible="${scrollable}"
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pagesize" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum distance to scroll, default: the height or width
              of the scrollbar.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onscrollmax" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mousewheelevent_on" type="xs:string" default="onfocus" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The event that activates the mousewhen when sent from the focusview </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mousewheelevent_off" type="xs:string" default="onblur" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The event that deactivates the mousewhen when sent from the focusview </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mousewheelactive" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the mousewheel is active for the focusview.
              @keywords read-only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="focusview" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The view to which the scrollbar should listen for focus 
            events. If not set, it will be set to the scrolltarget
            or the immediateparent of the scrollbar,
            whichever is focusable </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Axis may be "x" or "y", controls the orientation and default
              scrollattr
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="validatingForm" type="lzx:validatingForm" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Validators
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="validatingForm" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:form">
      <xs:attribute name="validators" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Validators
  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="errorcount" type="lzx:number" default="0" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="PopupCircle" type="lzx:PopupCircle" >
</xs:element>
  <xs:complexType name="PopupCircle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:circlehotspot">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
      <xs:attribute name="parentView" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baselistitem" type="lzx:baselistitem" >
</xs:element>
  <xs:complexType name="baselistitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevaluecomponent">
      <xs:attribute name="selected" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether this item is selected. Our containing list will adopt the value
              of this component when it is selected. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselected" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when this item is selected. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when the user makes a selection. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="piechartplotarea" type="lzx:piechartplotarea" >
<xs:annotation>
<xs:documentation xml:lang="en">

         A pie chart plot area where the pie slices are rendered
         @access public
         </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="piechartplotarea" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="style" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Defines the pie slice's style </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="formlayout" type="lzx:formlayout" >
</xs:element>
  <xs:complexType name="formlayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between each view in the layout </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxwidth" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="inset" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to inset the first view controlled by the layout</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="counter" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="align" type="xs:string" default="left" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="mred" type="lzx:mred" >
</xs:element>
  <xs:complexType name="mred" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="urls" type="xs:string" default="[ 'http://www.openlaszlo.org/images/edsurf.gif',                      'http://www.openlaszlo.org/images/ednpals2.gif',                      'http://www.openlaszlo.org/images/edchess1.jpg',                      'http://www.openlaszlo.org/images/edandalaninbarn.jpg'                    ]" >
</xs:attribute>
      <xs:attribute name="urlnum" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="timedel" type="xs:string" default="${new LzDelegate ( this , 'advance' )}" >
</xs:attribute>
      <xs:attribute name="running" type="xs:string" default="0" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="bluestyle" type="lzx:bluestyle" >
</xs:element>
  <xs:complexType name="bluestyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:style">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="axis" type="lzx:axis" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A abstract class that represents one of the axes of a rectangular chart. In general, axis isn't instantiated directly     
    @access public
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="axis" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="type" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the axis type can be 'linear' or 'categorical' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="titleY" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the placement in Y position of the Axis title </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="titleX" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the placement in X position of the Axis title </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="titleLocation" type="xs:string" default="default" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the placement of the Axis title possible values: 'low','high','default'</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="titleGap" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="title" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Axis title label</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tickmarkLabelMaxDecimals" type="lzx:number" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ticklabelcolumn" type="xs:string" default="$once{''}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Data Column that is used to override the values of Tic Marks labels   </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tickMarksLabelsEnabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable the rendering of tic Marks labels </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tickMarkPositions" type="xs:string" default="[]" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Exposes distances where tickmarks are drawn 
        @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scale" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ratioPixel" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="offset" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minorTickEnabled" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable minor Tics Marks </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minimumRender" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minimum" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Numerical value that indicates the Minimum value in the axis can be positive or negative value </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maximumRender" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maximum" type="xs:string" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Numerical value that indicates the Maximum value in the axis can be positive or negative value </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="majorTickEnabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable Major Tics Marks </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="majorInterval" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Allows to customize the interval of the Major Tics Marks</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelrotation" type="xs:string" default="horizontal" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the axis title rotation can be 'horizontal' or 'vertical' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelTextArray" type="xs:string" default="[]" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Exposes distances where tickmarks are drawn 
        @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelReposEnabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Attribute that controls if the labels are vertically repositioned to avoid overlaping </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelArray" type="xs:string" default="[]" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="interval" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the interval of values between the tic marks of the axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fixedRange" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Fix the range of the axis to the maximum &amp;amp; minimum   </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataSeries" type="xs:string" default="[]" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="columnName" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates the column name associated to the axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="categoricalArray" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axisEnabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable or disable the axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="adjustmin" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colormenuitem" type="lzx:colormenuitem" >
</xs:element>
  <xs:complexType name="colormenuitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="mycolor" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="sliderknob" type="lzx:sliderknob" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="sliderknob" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="minx" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxy" type="xs:string" default="100" >
</xs:attribute>
      <xs:attribute name="isMouseDown" type="xs:string" default="false" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="custombutton" type="lzx:custombutton" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The custombutton class can include text and/or an icon, with our app-specific background graphic
        &lt;example&gt;
          &amp;lt;canvas&amp;gt;
            &amp;lt;include href="incubator/custombutton.lzx"/&amp;gt;
            &amp;lt;custombutton iconname="target" text="Hit Me"/&amp;gt;
          &amp;lt;/canvas&amp;gt;
        &lt;/example&gt;

        the icon should be a resource with a name ending in "_icon_rsc";
        the iconname should be that resource name, without the "_icon_rsc"
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="custombutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
      <xs:attribute name="texty" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 use to fine-tune text y position </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rightrsc" type="xs:string" default="custombutton_small_right_rsc" >
</xs:attribute>
      <xs:attribute name="middlersc" type="xs:string" default="custombutton_small_middle_rsc" >
</xs:attribute>
      <xs:attribute name="leftrsc" type="xs:string" default="custombutton_small_left_rsc" >
<xs:annotation>
<xs:documentation xml:lang="en">
 background resources </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="icony" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 fine-tune the vertical position of icon </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconstretches" type="xs:string" default="none" >
<xs:annotation>
<xs:documentation xml:lang="en">
 controls whether the icon stretches (none|both) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconspace" type="xs:string" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 fine-tune the horizontal spacing of icon to text </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 icon resource name prefix </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="expandedWidth" type="xs:string" default="$once{this.width}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 max width of button </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="collapsedWidth" type="xs:string" default="30" >
<xs:annotation>
<xs:documentation xml:lang="en">
 min width of button </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="barchartplotarea" type="lzx:barchartplotarea" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords private
     plotarea of barchart </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="barchartplotarea" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:virtualdrawview">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="xdragstate" type="lzx:xdragstate" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="xdragstate" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:state">
      <xs:attribute name="xdoffset" type="xs:string" default="this.getMouse( 'x' )" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="x" type="xs:string" default="${limit(minx, maxx,                     this.immediateparent.getMouse( 'x' ) - this.xdoffset)}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basecombobox" type="lzx:basecombobox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A dropdown list of selectable items. Can either be editable or
          not. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basecombobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
      <xs:attribute name="text_y" type="lzx:number" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y position of the text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_x" type="lzx:number" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the x position of the text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_width" type="lzx:number" default="${this.width - 19}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the width the text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The spacing size ( in pixels ) between items in the pop-up list.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shownitems" type="xs:string" default="-1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sets the height of the combobox to show 'n' items. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selected" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The initial selected item. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is triggered whenever the user makes a selection. It
              may be used as a script in the combobox tag or as an event method.
              </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ondefaultselection" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is sent when the default selection is set.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="min_width" type="lzx:number" default="50" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum width this component is allowed to be.
              @keywords defaultsetter </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="itemclassname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The class that is used to create an item in the list. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="isopen" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates whether or not the popup list is showing.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="editable" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Make the text field of this combobox editable. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaulttext" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text that appears in the text field when no item is selected. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultselection" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The number of the item that is initially selected. This overrides
              the value defined in the defaulttext attribute </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataoption" type="xs:string" default="none" >
<xs:annotation>
<xs:documentation xml:lang="en">
 One of "lazy", "resize", "pooling", "none". </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datacontrolsvisibility" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="bordersize" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The border size ( in pixels ) of the popup list.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoscrollbar" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether a scrollbar should automatically show up when there are more
              items than shownitems. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="attachoffset" type="lzx:number" default="-1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The vertical offset of the floatinglist attached to this
              combobox. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="audio" type="lzx:audio" >
<xs:annotation>
<xs:documentation xml:lang="en">
Imports an audio file.
[Warning]This tag is obsolete. Its functionality has been replaced by the &lt;resource&gt; tag. 
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="audio" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="src" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Imports an audio file.
[Warning]This tag is obsolete. Its functionality has been replaced by the &lt;resource&gt; tag. 
 </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="basefloatinglist" type="lzx:basefloatinglist" >
</xs:element>
  <xs:complexType name="basefloatinglist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:list">
      <xs:attribute name="attachtarget" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The view to which this floatinglist will attach. By default, this
              will be the lexical parent.  The style of the attachtarget will be
              inherited. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="attachoffset" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The distance from the attachtarget. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="attach" type="xs:string" default="bottom" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Where this floatinglist should attach to its owner. Possible
              values: bottom, top, left, right.  In the event of a canvas
              out-of-bounds, the floating list will attach in a visible
              location. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basecomponent" type="lzx:basecomponent" >
<xs:annotation>
<xs:documentation xml:lang="en">
 an abstract class which all components subclass </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basecomponent" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the label or title of the component: instead of using this 
              attribute text may instead be placed withing the tag, for
              example: &amp;lt;button&amp;gt;OK&amp;lt;/button&amp;gt; </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="styleable" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 whether style should be applied to this component </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="style" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
  if null, the style is set to the inherited style from the parent
               component, if no parent component the style will be the canvas
               'defaultstyle' attribute </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onstyle" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onisdefault" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event: when isdefault changes
              @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onfocusable" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="on_enabled" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="isdefault" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If set to true, this component will be the default (and will
              therefore receive the enter key) if it is nearest to the focussed
              view, and if that focussed view does not have doesenter set to
              true. "Nearness" is defined to mean the closest common parent
              with the focussed view that is not excluded from the mode, and
              which is visible onscreen.
              </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hasdefault" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 set to true when this component will receive enter key events </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="enabled" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 when false the component should appear as its disabled state and
              not respond to user events. The component is
              automatically set to clickable when enabled, and not clickable
              when disabled.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="doesenter" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 if set to true, the component manager will call this component
              with doEnterDown and doEnterUp when the enter key goes up or down
              if it is focussed. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="camera" type="lzx:camera" >
</xs:element>
  <xs:complexType name="camera" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:mediadevice">
      <xs:attribute name="width" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width (resolution) that will be captured by the camera. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="show" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, show camera on immediateparent videoview.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="picturequality" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Camera picture quality: a value between 0 and 1, where 1
              represents the highest quality (no compression). When
              0 is passed, this indicates to use highest quality that
              fits into the available bandwidth </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="height" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The height (resolution) that will be captured by the camera. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fps" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The number of frames per second that will be captured 
              by the camera. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="favorsize" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Often several capture modes are available per camera device.
              These modes will allow capturing at a specific size (width/height)
              and framerate.  If you specify both fps and width and height for
              this camera, this attribute will control which capturing mode
              for the camera device will be used. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bandwidth" type="xs:string" default="16384" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Camera bandwidth (in bytes per second). </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="toggletext" type="lzx:toggletext" >
</xs:element>
  <xs:complexType name="toggletext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
      <xs:attribute name="editing" type="xs:string" default="false" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tickmarklabel" type="lzx:tickmarklabel" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private Represents the tickmark text which appears on a computerized note </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="tickmarklabel" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:label">
      <xs:attribute name="styleSet" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Attribute to handle style set optimization
        @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="photo" type="lzx:photo" >
</xs:element>
  <xs:complexType name="photo" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datamarker" type="lzx:datamarker" >
<xs:annotation>
<xs:documentation xml:lang="en">

      datamarker for the chart
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datamarker" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colorpicker" type="lzx:colorpicker" >
</xs:element>
  <xs:complexType name="colorpicker" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:window">
      <xs:attribute name="selectedColor" type="lzx:number" default="0x000000" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baseslidertrack" type="lzx:baseslidertrack" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Baseslidertrack expects to be within a baseslider (or its
          subclass). In other words, its "classroot" should be a slider. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="baseslidertrack" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colorpot" type="lzx:colorpot" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Components
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="colorpot" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="mycolor" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Components
  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="listener" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="pre" type="lzx:pre" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="pre" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
  </xs:complexType>
<xs:element name="wrappinglayout" type="lzx:wrappinglayout" >
</xs:element>
  <xs:complexType name="wrappinglayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="yspacing" type="xs:string" default="${this.spacing}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between the views controlled by the layout in
          the y axis. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="yinset" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to offset the first view controlled by the layout in y
          axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xspacing" type="xs:string" default="${this.spacing}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between the views controlled by the layout in
          the x axis. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xinset" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to offset the first view controlled by the layout in x
          axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="spacing" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between the views controlled by the layout in
          both axes. By default, both xspacing and yspacing are set to this
          value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="duration" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If given, a number of miliseconds to use to animate the views in to
          place.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="x" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The primary axis for wrapping. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="checkbox" type="lzx:checkbox" >
</xs:element>
  <xs:complexType name="checkbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
      <xs:attribute name="text_y" type="lzx:number" default="${this.cb.height/2 - this._title.height/2+1}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y position of the text label. default: centered </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="resizeview_x" type="lzx:resizeview_x" >
</xs:element>
  <xs:complexType name="resizeview_x" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="right" type="xs:string" >
</xs:attribute>
      <xs:attribute name="middle" type="xs:string" >
</xs:attribute>
      <xs:attribute name="left" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="html" type="lzx:html" >
</xs:element>
  <xs:complexType name="html" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="target" type="xs:string" default="$once{this.parent}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sets the view to listen to for x/y/width/height change events.  Defaults to this.parent.
          @type LzView
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="src" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sets the URL the html tag should load
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shownativecontextmenu" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, show native context menus in the iframe.  Otherwise, show OpenLaszlo context menus.  Note that this only works in DHTML because it's not possible to programatically display a context menu in Flash.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollbars" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the html tag will have scrollbars.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rpcmethods" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Contains a list of method names available to call with callRPC().
          @type Array
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ready" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the html tag is ready to receive commands
          @type Boolean
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ontarget" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onsrc" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onready" type="xs:string" >
</xs:attribute>
      <xs:attribute name="mouseevents" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, attempt to listen for mouse events on the iframe.  Cross-domain security restrictions apply, so if the content loaded in the iframe is from a different domain, mouse events won't be sent.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minimumwidth" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum width of the iframe: embedded swfs won't load with a size less than 1
          @type Number
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minimumheight" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum height of the iframe: embedded swfs won't load with a size less than 1
          @type Number
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="loading" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the html tag is currently loading
          @type Boolean
          @access public
          @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iframeid" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="html" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The HTML that the iframe starts out containing.
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="history" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the html tag will set browser history.
          @type Boolean
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="framename" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sets the name/target of the html iframe.
          @type String
          @access public
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="frametimer" type="lzx:frametimer" >
</xs:element>
  <xs:complexType name="frametimer" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="fps" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="delta" type="lzx:number" default="0" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="resizeview_y" type="lzx:resizeview_y" >
</xs:element>
  <xs:complexType name="resizeview_y" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="top" type="xs:string" >
</xs:attribute>
      <xs:attribute name="middle" type="xs:string" >
</xs:attribute>
      <xs:attribute name="bottom" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baselist" type="lzx:baselist" >
</xs:element>
  <xs:complexType name="baselist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
      <xs:attribute name="toggleselected" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 When true, the first click on a list item selects it and the
              second click deselects it. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is triggered whenever the user makes a selection it may
              used as a script in the tag or as an event method. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onitemclassname" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is triggered whenever the itemclassname attribute 
              changes. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="multiselect" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If multiselect is true, multiple items may be selected. When the
              shift key is down, a range of items is selected. When the control
              key is down, any item may be added to the selection. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="itemclassname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name of the class for new items that will be created with
              addItem(). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultselection" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The index of the default selected item, if none is provided via
              the selected="true" attribute on an item. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataoption" type="xs:string" default="none" >
<xs:annotation>
<xs:documentation xml:lang="en">
 One of "lazy", "resize", "pooling", "none". </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="selectionmanager" type="lzx:selectionmanager" >
<xs:annotation>
<xs:documentation xml:lang="en">

   
    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
               Use is subject to license terms.
   
    @affects lzselectionmanager
    @access public
    @topic LFC
    @subtopic Helpers
    @lzxname selectionmanager
    @devnote TODO: [20080930 anba] (LPP-6080) uncomment typing in method signatures
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="selectionmanager" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="toggle" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">

        @type Boolean
        @lzxtype boolean
      </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectedHash" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

        @access private
        @type Object
      </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selected" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

        @access private
        @type Array
      </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sel" type="xs:string" default="setSelected" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name of the method to call on an object when an object's
        selectedness changes. The method is called with a single Boolean
        argument. The default value for this field is &lt;code&gt;setSelected&lt;/code&gt;.
        (This feature is not available for &lt;tagname&gt;dataselectionmanager&lt;/tagname&gt;.)
        @type String
        @lzxtype string
      </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lastRangeStart" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

        @type *
        @access private
      </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datalabel" type="lzx:datalabel" >
<xs:annotation>
<xs:documentation xml:lang="en">

      Represents the data text which appears on a computerized note
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datalabel" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:label">
      <xs:attribute name="labelOut" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelEnabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="handler" type="lzx:handler" >
</xs:element>
  <xs:complexType name="handler" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="reference" type="xs:string" default="this" >
</xs:attribute>
      <xs:attribute name="name" type="xs:string" use="required" >
</xs:attribute>
      <xs:attribute name="method" type="xs:string" >
</xs:attribute>
      <xs:attribute name="args" type="xs:string" default="" >
</xs:attribute>
  </xs:complexType>
<xs:element name="tooltip" type="lzx:tooltip" >
</xs:element>
  <xs:complexType name="tooltip" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="yoffset" type="xs:string" default="25" >
<xs:annotation>
<xs:documentation xml:lang="en">

        The vertical offset of tooltip from the mouse position.
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tipvalign" type="xs:string" default="default" >
<xs:annotation>
<xs:documentation xml:lang="en">

        Whether the tooltip shows up above or below the mouse
        position. Default will position heuristically to keep
        the tooltip visible on the canvas.

        @lzxtype above | below | default
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tipalign" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">

        Whether the tooltip is horizontally aligned by it's left edge
        (default) or right edge relative to the mouse position.

        @lzxtype right | left
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

        The text that will be displayed by the tooltip.  If the text
        is &lt;code&gt;null&lt;/code&gt; or empty, no tooltip will be displayed.
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="viewslist" type="lzx:viewslist" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pool of ordered view  
         - @keyword private
        </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="viewslist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="vlist" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pool of ordered view  
         - @keyword private
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="viewclass" type="xs:string" default="$once{null}" >
</xs:attribute>
      <xs:attribute name="parentview" type="xs:string" default="${parent}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="combobox" type="lzx:combobox" >
</xs:element>
  <xs:complexType name="combobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecombobox">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datepickerlistitem" type="lzx:datepickerlistitem" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datepickerlistitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:textlistitem">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="rtmpconnection" type="lzx:rtmpconnection" >
</xs:element>
  <xs:complexType name="rtmpconnection" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="status" type="xs:string" default="disconnected" >
<xs:annotation>
<xs:documentation xml:lang="en">
 String to indicate connection status.
            @type string
            @access public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="stage" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Number to indicate what stage of connection we're in:
            0: disconnected, 1: connecting, 2: connected.
            @type Number
            @access public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="src" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Application url, for example
            "rtmp:/appname" or "rtmp://myserver.com/myapp/".
            @type String
            @access private
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onconnect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when connection established. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="objectencoding" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The AMF object encoding to use for this connection, either 0 or 3.
            @type Number
            @keywords final  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="debug" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Turn on for verbose debugger output.
            @type Boolean
            @access public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="connectiontimeout" type="lzx:number" default="3000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Number of milliseconds to wait for connection at src before 
                using altsrc URL </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="connections" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A shared hash of connections
            @type Object
            @access private
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="connectionparams" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Connection parameters that will be sent to the server when NetConnection.connect() is called
            @type Expression
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoconnect" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Connect automatically during init. If false, you need to explicitly
            call connect().
            @type Boolean
            @access public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="altsrc" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Alternate application url, used if the connection for src 
                fails for example : "rtmp:/appname" or 
                "rtmp://myserver.com/myapp/". </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="resizelayout" type="lzx:resizelayout" >
</xs:element>
  <xs:complexType name="resizelayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between each view in the layout </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates either 'x' or 'y'.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basedatacombobox_item" type="lzx:basedatacombobox_item" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Class used to create an item in a basedatacombobox's list.
          @keywords private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basedatacombobox_item" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:textlistitem">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="greenstyle" type="lzx:greenstyle" >
</xs:element>
  <xs:complexType name="greenstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:style">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tab" type="lzx:tab" >
</xs:element>
  <xs:complexType name="tab" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetab">
      <xs:attribute name="padding" type="xs:string" default="20" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Text padding. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basechart" type="lzx:basechart" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The base class for non-pie charts.  Contains most of the
        shared attributes and elements.  (Of beta quality.) </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basechart" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="zoomcolor" type="lzx:color" default="#DDDDDD" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the zoom selector. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="zoomable" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether bars are zoomable or not. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="zerowidth" type="lzx:number" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of the line drawn at zero. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vtickwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of drawn vertical tick marks. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vticklength" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Length of drawn vertical tick marks. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vticklabelsize" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Text size of vertical tick labels. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vticklabel" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of vertical tick labels.  If not specified, no
            labels are drawn. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vtick" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw vertical tick marks, and if so,
            what color.  If no color is specified, ticks are not drawn.
            These are the tick marks that are drawn vertically, along the
            bottom axis.  Note: In barchart, setting drawaxis to y changes
            overall chart orientation, with the "bottom" on the left. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vgridwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Vertical grid line thickness. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vgridspacing" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Vertical grid line spacing.  (Units, not pixels.  In
            barchart, the space between one bar and the next is
            considered one unit.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vgridlines" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the vertical grid lines.  Note: In barchart,
            vertical axis is considered the axis that runs parallel to the
            orientation of the chart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vgridbands" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Vertical grid bands. Note: In barchart, vertical axis is
            considered the axis that runs parallel to the orientation of
            the chart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vbopacity" type="lzx:number" default=".5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Vertical grid band opacity.  Note: In barchart, vertical
            axis is considered the axis that runs parallel to the
            orientation of the chart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vaxiswidth" type="lzx:number" default="3" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of drawn vertical axis. Note: In barchart, vertical
            axis is considered the axis that runs parallel to the
            bars in the chart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="vaxis" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw a line along the vertical axis, and if so,
            what color.  (If no color is specified, axis is not drawn.)
            Note: In barchart, vertical axis is considered the axis
            that runs parallel to the bars in the chart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ploty" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Plot area's y position, relative to chart as a whole. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Plot area's x position, relative to chart as a whole. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotwidth" type="lzx:number" default="${this.width - 1}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of plotting area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotheight" type="lzx:number" default="${this.height - 1}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Height of plotting area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="paneslider" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The position of the view in which the data is drawn in
            relation to its parent clipping frame.  Allows data to be
            dragged or slid around. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minimum" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Grid's minimum displayed value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maximum" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Grid's maximum displayed value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="htickwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of drawn horizontal tick marks. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hticklength" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Length of drawn horizontal tick marks. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hticklabelsize" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Text size of horizontal tick labels. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hticklabel" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of horizontal tick labels.  If not specified, no
            labels are drawn. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="htick" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw horizontal tick marks, and if so,
            what color.  If no color is specified, ticks are not
            drawn.  These are the tick marks that are drawn horizontally,
            along the side axis.  Note: In barchart, setting drawaxis to y
            changes overall chart orientation, with the "bottom" on the
            left. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hgridwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Horizontal grid line thickness. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hgridspacing" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Horizontal grid line spacing.  (Units, not pixels.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hgridlines" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the horizontal grid lines. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hgridbands" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Horizontal grid bands. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hbopacity" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Horizontal grid band opacity. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="haxiswidth" type="lzx:number" default="3" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of drawn horizontal axis. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="haxis" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw the horizontal axis, and what color.
            (If no color is specified, axis is not drawn.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawzero" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw a line at zero, and what color.  If
            no color is specified, line is not drawn. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawaxis" type="xs:string" default="x" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The direction in which the data will be drawn.
            Accepts values x and y.  (x - vertical bars drawn
            from left to right.  y - horizontal bars drawn
            top to bottom.)  Only applicable to barchart, but
            necessary for certain shared elements. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="draggable" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether bars are able to be dragged or not. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of the plot area's border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether there's a border around the plot area, and if so,
            what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgresource" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If desired, a resource can be used in the background.
            If specified, this view will appear behind the chart,
            with everything drawn on top of it. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="belowzeroopacity" type="lzx:number" default=".2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Opacity for area below zero.  Defaults to a low number
            for a hazy, translucent effect. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="belowzero" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to fill the area below zero, and what color.
            (Will not be drawn if no color specified.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="baselabels" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to label the individual bar ticks, and if so,
            what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="barticks" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to have ticks for individual bars, and if so,
            what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="altslider" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The slider for the alternate direction to paneslider. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="altminimum" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Grid's maximum for width.  (If lines are drawn
            vertically, this controls horizontal visible area.  If lines are drawn
            horizontally, this controls vertical visible area.  Changing these
            will allow the user to zoom in and out on a particular area, and
            will scale data accordingly.)  Note: Not settable in barchart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="altmaximum" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Grid's minimum for width.  (If lines are drawn
            vertically, this controls horizontal visible area.  If lines are drawn
            horizontally, this controls vertical visible area.  Changing these
            will allow the user to zoom in and out on a particular area, and
            will scale data accordingly.)  Note: Not settable in barchart. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="adjusttodata" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to adjust the graph to data. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="memorymonitor_model" type="lzx:memorymonitor_model" >
</xs:element>
  <xs:complexType name="memorymonitor_model" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="scale" type="lzx:number" default="1 / 1024" >
</xs:attribute>
      <xs:attribute name="max" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="current" type="lzx:number" default="-1" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="roundrectbutton" type="lzx:roundrectbutton" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
A class for making nice-looking, styleable buttons with gradients, without any art assets.

See test/test-roundrectbutton.lzx for several examples of how to use this component. 

The component attributes are only used for initialization. They are not live constraints.
Currently the best way to change them at runtime is to apply a &amp;lt;style&amp;gt;. 
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="roundrectbutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="upStopColor" type="lzx:color" default="0x999999" >
</xs:attribute>
      <xs:attribute name="upStartColor" type="lzx:color" default="0xcccccc" >
</xs:attribute>
      <xs:attribute name="overStopColor" type="lzx:color" default="0x777777" >
</xs:attribute>
      <xs:attribute name="overStartColor" type="lzx:color" default="0x999999" >
</xs:attribute>
      <xs:attribute name="downStopColor" type="lzx:color" default="0xCCCCCC" >
</xs:attribute>
      <xs:attribute name="downStartColor" type="lzx:color" default="0xFFFFFF" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
A class for making nice-looking, styleable buttons with gradients, without any art assets.

See test/test-roundrectbutton.lzx for several examples of how to use this component. 

The component attributes are only used for initialization. They are not live constraints.
Currently the best way to change them at runtime is to apply a &amp;lt;style&amp;gt;. 
</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="boxShadowY" type="xs:string" default="2" >
</xs:attribute>
      <xs:attribute name="boxShadowX" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="boxShadowColor" type="xs:string" default="0xb3b3b3" >
</xs:attribute>
      <xs:attribute name="borderWidth" type="xs:string" default="1" >
</xs:attribute>
      <xs:attribute name="borderRadius" type="xs:string" default="15" >
</xs:attribute>
      <xs:attribute name="borderColor" type="lzx:color" default="0x999999" >
</xs:attribute>
      <xs:attribute name="backgroundStopColor" type="lzx:color" default="$once{parent.upStopColor}" >
</xs:attribute>
      <xs:attribute name="backgroundStartColor" type="lzx:color" default="$once{parent.upStartColor}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="LzTextFormat" type="lzx:LzTextFormat" >
<xs:annotation>
<xs:documentation xml:lang="en">

    LzTextFormat is deprecated.  Use 'textformat' instead.
    @keyword deprecated
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="LzTextFormat" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:textformat">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="myweek" type="lzx:myweek" >
</xs:element>
  <xs:complexType name="myweek" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatepickerweek">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="rpc" type="lzx:rpc" >
</xs:element>
  <xs:complexType name="rpc" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="secureport" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The port to use for the secure socket between the client and the
              LPS. If secure is false, this value is ignored.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="secure" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Make connection secure between client and the LPS secure
             (HTTPS). Default is false. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proxyinfo" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="proxy" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The remote proxy object. Proxy is set after the rpc object
              loads. Proxy contains client-side function stubs to remote
              methods. Each method takes an array of arguments and a delegate
              like:

                myrpc.proxy.remoteFunc( [ p1, p2, ..., pN ], delegate );

              Remote methods with no arguments are passed in an empty array
              like:

                myrpc.proxy.otherRemoteFunc( [], delegate );

              The delegate is used to handle the return value since RPC calls
              are asynchronous.

              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onunload" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is triggered when the remote object is unloaded.
              @access public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onload" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is triggered when the remote object is loaded.
              @access public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onerror" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is triggered when an error or timeout occurs associated
              with getting this object or calling one of its remote methods. 
              @access public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoload" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Load remote object during init. If false, create remote object by
              calling load(). Default is true. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datacombobox" type="lzx:datacombobox" >
</xs:element>
  <xs:complexType name="datacombobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatacombobox">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basezoomarea" type="lzx:basezoomarea" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An abstract class that provide basic zooming ability. 
        Allow subclasses to modify the look and feel
        and action to be taken
        @access public
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basezoomarea" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="starty" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="startx" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectionDel" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selecting" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 user is selecting or not </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotarea" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="endy" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="endx" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="enabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable zoom area </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="duration" type="lzx:number" default="500" >
<xs:annotation>
<xs:documentation xml:lang="en">
 zoom animation duration </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="chart" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the chart instance </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_componentmanager" type="lzx:_componentmanager" >
</xs:element>
  <xs:complexType name="_componentmanager" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tree" type="lzx:tree" >
</xs:element>
  <xs:complexType name="tree" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetree">
      <xs:attribute name="onactivate" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Double-clicking on the icon or text triggers this event. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="icon" type="xs:string" default="lztree_folder_rsc" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The resource for the item icon:
              frame 1 (closed), frame 2 (opened), frame 3 (leaf) 
              Default is lztree_folder_rsc defined in lz/tree.lzx.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="expander" type="xs:string" default="lztree_arrow_rsc" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The resource for the expanding icon:
              frame 1 (closed), frame 2 (opened), frame 3 (leaf).
              Default is lztree_arrow_rsc defined in lz/tree.lzx.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chartdata" type="lzx:chartdata" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A container class for dataseries instances.  Helps organize and
        locate the data. All dataseries tags in a chart must be children
        of this class. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="chartdata" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="button" type="lzx:button" >
</xs:element>
  <xs:complexType name="button" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
      <xs:attribute name="text_y" type="lzx:number" default="${this.height/2 - this._title.height/2}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y position of the button text. default: centered </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_x" type="lzx:number" default="${this.width/2 - this._title.width/2}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the x position of the button text. default: centered </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_padding_y" type="lzx:number" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the amount of space to add vertically  when sizing button to its
        text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_padding_x" type="lzx:number" default="11" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the amount of space to add horizontally when sizing button to its
        text. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="slidertrack" type="lzx:slidertrack" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the inner track on which the sliderthumb rides </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="slidertrack" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseslidertrack">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="listselector" type="lzx:listselector" >
<xs:annotation>
<xs:documentation xml:lang="en">
 a helper class that wraps the selectionmanager in some
        higher level APIs, used by baselist </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="listselector" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:selectionmanager">
      <xs:attribute name="multiselect" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If multiselect is true, multiple selection is enabled.
        When the shift key is down, a range of items is selected.
        When the control key is down, any item may be added to the
        selection.
             Default: false </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="piechart" type="lzx:piechart" >
<xs:annotation>
<xs:documentation xml:lang="en">

          A pie chart represents a chart that is displayed in the 2D
          polar plane. This class inherits immediately from chart class
          and can be instantiated directly. (Warning: Of beta quality.)
          @access public
          </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="piechart" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="selectedpie" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Which pie is selected, if there are multiple pies. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ploty" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Plot area y coordinate, relative to chart as a whole. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Plot area x coordinate, relative to chart as a whole. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotwidth" type="lzx:number" default="${this.width - 1}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of plotting area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotheight" type="lzx:number" default="${this.height - 1}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Height of plotting area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="plotbgcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Background color of the plot area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="piespacing" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The space between the pies, if there are multiple pies. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of the plot area's border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Border around the plot area, if anything. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgresource" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If desired, a resource can be used in the background.
            If specified, this view will appear behind the chart,
            with everything drawn on top of it. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="menuarrow" type="lzx:menuarrow" >
</xs:element>
  <xs:complexType name="menuarrow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="import" type="lzx:import" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The &lt;import&gt; tag is used to import, at run time, source code contained in another (library) file. See the Guide for a complete discussion. Also see the &lt;library&gt; tag. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="import" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="stage" type="xs:string" default="late|defer" >
</xs:attribute>
      <xs:attribute name="proxied" type="xs:string" >
</xs:attribute>
      <xs:attribute name="href" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  A reference to a target file whose content is treated as a loadable module </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="textlistitem" type="lzx:textlistitem" >
</xs:element>
  <xs:complexType name="textlistitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:listitem">
      <xs:attribute name="text_y" type="xs:string" default="${this.height/2 - this._title.height/2}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y position of the text label. default: centered </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_x" type="xs:string" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The x position of the displayed text. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="rtmpstatus" type="lzx:rtmpstatus" >
</xs:element>
  <xs:complexType name="rtmpstatus" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="rtmpc" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 rtmpconnection to monitor </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="valueline" type="lzx:valueline" >
<xs:annotation>
<xs:documentation xml:lang="en">

       Represents a line in the chart
       @access public
       </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="valueline" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="tipEnable" type="lzx:boolean" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable tooltip for data </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tip" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the tooltip value will be display when the mouse over the line </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="label" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the label will be display next to the line </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the axis value could be "x" or "y" </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="labelstyle" type="lzx:labelstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style object used for anything that contains a label within the chart.
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="labelstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
      <xs:attribute name="linesize" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 size of border of label background  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="linecolor" type="lzx:color" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color of bounding box border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the number of pixels the font is inset from the border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fontcolor" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color of the font </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fontangle" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 angle of rotation of the font </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fillcolor" type="lzx:color" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color of bounding box fill </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basevaluecomponent" type="lzx:basevaluecomponent" >
<xs:annotation>
<xs:documentation xml:lang="en">
 an abstract class for components that represent a value for data </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basevaluecomponent" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="value" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the value that this item represents. When selected,
        the parent selection group's value will be set to this value.
        Most subclasses require you to call getValue() to get the
        value of the attribute.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="expression" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The type of value of the item. Default is 'expression',
             which will attempt to heuristicate the type from the
             value. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetooltip" type="lzx:basetooltip" >
</xs:element>
  <xs:complexType name="basetooltip" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" default="Default Value" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="form" type="lzx:form" >
</xs:element>
  <xs:complexType name="form" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseform">
      <xs:attribute name="spacing" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Vertical space between content and button area. If forms height is
              specified, the button area will be flush against the form's bottom
              right corner (adjusted by any layout that the form has). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_top" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The top inset for content appearing within form. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_right" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The right inset for content appearing within form. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_left" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The left inset for content appearing within form. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_bottom" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The bottom inset for content appearing within form. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basestyle" type="lzx:basestyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 base style for all chart styles
      @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basestyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="valueregionstyle" type="lzx:valueregionstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 valueregionstyle is used for drawing the appearance of a value region
      @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="valueregionstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chartstyle" type="lzx:chartstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style for chart, contain nested level of style extend from basestyle
      @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="chartstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
      <xs:attribute name="version" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="onversion" type="xs:string" >
</xs:attribute>
      <xs:attribute name="datastyleindex" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="radiobutton" type="lzx:radiobutton" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Implements a "radio" button, allows a one-of-many selection when
          several of these are in a radiogroup. Radiobutton expects its parent
          to be radiogroup. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="radiobutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselistitem">
      <xs:attribute name="text_y" type="lzx:number" default="${this.rb.height/2 - this._title.height/2}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y position of the text label. default: centered </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="alert" type="lzx:alert" >
</xs:element>
  <xs:complexType name="alert" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:modaldialog">
      <xs:attribute name="text_y" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The y position of the button text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_x" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The x position of the button text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="result" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 After the alert is closed, this is set to true if button1 ("OK")
              is pressed or false if button2 is pressed. You can check for the
              result value using the onresult event. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onresult" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This event is sent when a button is pressed. Use this to check the
              result value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxtextwidth" type="xs:string" default="${Math.round(parent.width/3) - inset_left - inset_right                     - content_inset_left - content_inset_right}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The max length of a line of text before it wraps. Default: 1/3 of
              the parent's width - width of window dressing and margin. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="button2" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If a string is set for this attribute, a second button will be
              shown to the left of the first with this text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="button1" type="xs:string" default="OK" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Alert shows only this button, if button2 isn't set.
              You may specify a different string to change the text of the
              button. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basegridcolumn" type="lzx:basegridcolumn" >
</xs:element>
  <xs:complexType name="basegridcolumn" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="sortpath" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An xpath expression to use to determine the sort key for this
              column. By default, this is the column's datapath's xpath. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minwidth" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum width for this column. This is relevant if the column
              can be resized. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hasSort" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set by &lt;code&gt;doSort()&lt;/code&gt; method. If true, then this is the current
              sort column.
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="descendComparator" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An optional method. If defined, this method will be used when 
              the column is sorted when ascendsort is set to false. This method
              should have the comparator signature. It should accept to string
              argument and return 1, 0 , or -1, indicating that the two
              arguments are in order, equivalent, or out of order,
              respectively. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datatype" type="xs:string" default="string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Either "number" or "string". If "string", then dictionary sort
              is used. If "number", then types are coerced to a number before
              sorting. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="colwidth" type="xs:string" default="${this.width}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The current width of the column. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ascendsort" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the next sort will be ascending, otherwise it will
              be descending.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ascendComparator" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An optional method. If defined, this method will be used when 
              the column is sorted when ascendsort is set to true. This method
              should have the comparator signature. It should accept to string
              argument and return 1, 0 , or -1, indicating that the two
              arguments are in order, equivalent, or out of order,
              respectively. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="strokestyle" type="lzx:strokestyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private 
Implementes the Stroke rendering lines </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="strokestyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="strokeWidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 -    Numerical value that indicate the thickness of the Stroke line in pixels. Default value ="1"</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="strokeType" type="xs:string" default="solid" >
<xs:annotation>
<xs:documentation xml:lang="en">
 String value that indicates the type of the Stroke, possible values : "solid", "dashed" or "dotted". Default value "solid"</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="strokeColor" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the Stroke in  hexadecimal value, default value "0x000000"</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="spaceLength" type="lzx:number" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Number of pixels of spacing between each small line that compose the stylish line. Default value ="5"</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dottedLength" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Number of pixel of each small line that compose the stylish line. Default value ="10"</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="menu" type="lzx:menu" >
</xs:element>
  <xs:complexType name="menu" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="opened" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 a boolean indicating whether or not the menu is in opened </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="attach" type="xs:string" default="bottom" >
<xs:annotation>
<xs:documentation xml:lang="en">
 a string to indicate how the floating part of the menu attaches to 
              the menubutton or menuitem. Possible values are: 'top', 'bottom', 'left', and 'right' </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="chartbacking" type="lzx:chartbacking" >
</xs:element>
  <xs:complexType name="chartbacking" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basechartbacking">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="vslider" type="lzx:vslider" >
</xs:element>
  <xs:complexType name="vslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="switchaxis" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 switchaxis true means minimum-value is 
                t op maximum is bottom false turns around </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showvalue" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 showvalue should the slider show the numbers of min/max </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showrange" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Showrange should the slidertrack be with color while 'sliding' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minvalue" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Minimum Value </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxvalue" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Maximum Value </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="initvalue" type="lzx:number" default="0" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basedatacombobox" type="lzx:basedatacombobox" >
</xs:element>
  <xs:complexType name="basedatacombobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
      <xs:attribute name="valuedatapath" type="xs:string" default="@value" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Datapath to value for items in list. See caveat.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="textdatapath" type="xs:string" default="text()" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Datapath to text to display for items in list. 
              See caveat.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="statictext" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If set, this will always be displayed instead of selected item
              text. Behaves like a menu button. Also see defaulttext. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shownitems" type="xs:string" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sets the height to the number of items to show in combobox
              popup list. Must be greater than 0. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectfirst" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 When true, the 1st item is selected oninit. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selected" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Datapointer to selected item. 
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselected" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when an item is selected. Sends selected item. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when an item is selected. Sends selected item. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onisopen" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Called when combobox opens or closes </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oncombofocus" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The equivalent for onfocus for combobox. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oncomboblur" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The equivalent for onblur for combobox. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="menuclassname" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="listwidth" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of popup list, defaults to width of combobox view. During
              setup, the width of the floating list view might not yet be set,
              so this returns the expected width. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="listattach" type="xs:string" default="bottom" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Where the floatinglist should attach to its owner. Possible
              values: bottom, top, left, right.  In the event of a canvas
              out-of-bounds, the floating list will attach in a visible
              location. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="itemdatapath" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Datapath to items in list. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="itemclassname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name of the class for items in the floating list. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="isopen" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates whether or not the popup list is showing.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ismenu" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the combobox will behave like a menu. "value" is
              ignored, and items will not remain selected. Selecting an
              item generates an onselect event </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaulttext" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Default text to display before a selection is made. No default
              item is selected if defaulttext is set. Defaulttext is replaced
              with selected item's text. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="columnchart" type="lzx:columnchart" >
<xs:annotation>
<xs:documentation xml:lang="en">

       A chart class that renders vertical bars.
       Inherits from the chart class.  (Warning: Of beta quality.)
       @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="columnchart" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:rectangularchart">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="row" type="lzx:row" >
</xs:element>
  <xs:complexType name="row" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="label" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="include" type="lzx:include" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The &lt;include&gt; tag is used to include source code contained in another file. See the Guide for a complete discussion. Also see the &lt;library&gt; tag. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="include" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="type" type="xs:string" default="text|xml" >
<xs:annotation>
<xs:documentation xml:lang="en">
  If this attribute has the value text , the content of the target file is included as text. Otherwise, it is read as XML.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="href" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  A reference to a target file whose content is included in the application that contains this include element. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="menutrackgroup" type="lzx:menutrackgroup" >
</xs:element>
  <xs:complexType name="menutrackgroup" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetrackgroup">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="roundrect" type="lzx:roundrect" >
</xs:element>
  <xs:complexType name="roundrect" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="oninsettop" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="oninsetright" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="oninsetleft" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="oninsetbottom" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="oninset" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="insettop" type="lzx:size" default="${null}" >
</xs:attribute>
      <xs:attribute name="insetright" type="lzx:size" default="${null}" >
</xs:attribute>
      <xs:attribute name="insetleft" type="lzx:size" default="${null}" >
</xs:attribute>
      <xs:attribute name="insetbottom" type="lzx:size" default="${null}" >
</xs:attribute>
      <xs:attribute name="inset" type="lzx:size" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The margin between the outside view and the content view </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="boxShadowY" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The x offset of the box shadow.  The box shadow is not drawn by default.
            Specify a boxShadowColor in order to draw it. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="boxShadowX" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The x offset of the box shadow.  The box shadow is not drawn by default.
            Specify a boxShadowColor in order to draw it. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="boxShadowOpacity" type="xs:string" default="0.5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The box shadow opacity. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="boxShadowColor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The box shadow color.  If this is specified, a box shadow is drawn.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderWidth" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the border.  If this is zero, no frame is drawn. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderRadius" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The rounding radius of the border corners.  Because the default
            join type is a round join, even a radius of zero will product some
            rounding. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderOpacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The border opacity </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderColor" type="lzx:color" default="black" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The border color </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="backgroundStopOpacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background stop opacity.  This defaults to one (opaque) unless the
            stop color is not specified and the start color is, in which case it
            defaults to zero (fully transparent). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="backgroundStopColor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background stop color.  This is the color that is drawn at the
            bottom or right of the view, depending on the value of
            backgroundGradientOrientation.  See the documentation for
            backgroundStartColor for additional documentation. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="backgroundStartOpacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background start opacity.  This defaults to one (opaque) unless the
            start color is not specified and the stop color is, in which case it
            defaults to zero (fully transparent). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="backgroundStartColor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background start color.  This is the color that is drawn at
            the top or left of the view, depending on the value of
            backgroundGradientOrientation.  If this and the backround stop color
            are specified, a gradient background is drawn in the direction specified
            by backgroundGradientOrientation.  If only one of the background start
            and stop color are specified, a gradient of the same color that fades to
            transparent at the unspecified end is drawn.  If a box shadow is drawn,
            the background defaults to white.  Specify a start and stop opacity to
            suppress this behavior. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="backgroundGradientOrientation" type="xs:string" default="vertical" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background gradient orientation.  One of 'vertical' (the default)
            and 'horizontal'. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="versioninfo" type="lzx:versioninfo" >
</xs:element>
  <xs:complexType name="versioninfo" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:text">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_newinternalinputtext" type="lzx:_newinternalinputtext" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A private inputtext class used by baseedittext that basically passes
          its events (onfocus, onblur, onkeyup, onkeydown, ontext) up. Instances
          of _internalinputtext should only exist in a baseedittext class. Note
          that _internalinputtext assumes that its parent is a baseedittext.

          Baseedittext controls _internalinputtexts y position and multiline
          setting. Subclasses and instances should not override these
          attributes.

          @keywords private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="_newinternalinputtext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:inputtext">
      <xs:attribute name="ignorecallup" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True means that doSetValue called internal inputtext and inputtext
              should not call doSetValue back. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="pointstyle" type="lzx:pointstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style for point and datamarker
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="pointstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
      <xs:attribute name="strokeStyle" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the stroke </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shape" type="xs:string" default="square" >
<xs:annotation>
<xs:documentation xml:lang="en">
 'circle','square','triangle', [name of resource] </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="lineWidth" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of the stroke line </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="image" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 image path </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="gradient" type="xs:string" default="none" >
<xs:annotation>
<xs:documentation xml:lang="en">
 'none', 'linear', 'radial' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="color" type="lzx:color" default="black" >
<xs:annotation>
<xs:documentation xml:lang="en">
 RGB color </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="checkdragstate" type="lzx:checkdragstate" >
<xs:annotation>
<xs:documentation xml:lang="en">
  This should be declared as a child of the thing for which you want to
        enable dragging.  You will need to define a view (an instance of a
        subclass of &lt;xref linkend="lz.basedragimage"/&gt;)
        to define the visual look of the thing while its being dragged.
        &lt;example executable="false"&gt;
        &amp;lt;class name="dragger" &amp;gt;
            ...
            &amp;lt;handler name="onmousedown"&amp;gt;
                checkdrag.setAttribute('applied', true);
            &amp;lt;/handler&gt;
            &amp;lt;handler name="onmouseup"&amp;gt;
                canvas.dragimage.stopdrag(this);
                checkdrag.setAttribute('applied', false);
            &amp;lt;/handler&amp;gt;

            &amp;lt;checkdragstate name="checkdrag" draggername="dragimage"/&amp;gt;
        &amp;lt;/class&amp;gt;
        &lt;/example&gt;

        The object that you want to accept a drop action, needs to register with
        lz.Track using the same group as is declared in the dragimage.

        &lt;example executable="false"&gt;
        &amp;lt;class name="droptarget"&amp;gt;
            ...
            &amp;lt;method name="init"&amp;gt;
                super.init();
                lz.Track.register(this, 'target');
            &amp;lt;/method&amp;gt;

            &amp;lt;handler name="onmousetrackover"&amp;gt;
               setAttribute('bgcolor', 0xffff00); // hilite
            &amp;lt;/handler&amp;gt;
            &amp;lt;handler name="onmousetrackout"&amp;gt;
               setAttribute('bgcolor', null); // normal
            &amp;lt;/handler&amp;gt;
            &amp;lt;handler name="onmousetrackup"&amp;gt;
               setAttribute('bgcolor', null); // normal
               canvas.dragimage.dropcomplete(this);
               Debug.write('dropped: '+dragimage.source.text);
            &amp;lt;/handler&amp;gt;
        &amp;lt;/class&gt;
        &lt;/example&gt;
        
        @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="checkdragstate" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:state">
      <xs:attribute name="draggername" type="xs:string" default="dragimage" >
<xs:annotation>
<xs:documentation xml:lang="en">
 an instance subclass of basedragimage that defines the
         visual representation of the item while it is being dragged
         </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="ticklabel" type="lzx:ticklabel" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Labels along the tick axes. Either incremental, or, in a barchart,
        determined by specified data. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="ticklabel" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="ltextsize" type="lzx:number" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the text for this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltext" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text of this label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltcolor" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of this label's text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelangle" type="lzx:number" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 XX To be implemented: The rotation of this particular label. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="radioitem" type="lzx:radioitem" >
<xs:annotation>
<xs:documentation xml:lang="en">
  A selectable list item which works like a Radio Button
            though uses an icon instead of radio button graphics.
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="radioitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselistitem">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basegridrow" type="lzx:basegridrow" >
</xs:element>
  <xs:complexType name="basegridrow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="styleRegularColor" type="lzx:color" default="black" >
</xs:attribute>
      <xs:attribute name="selectedColor" type="lzx:color" default="black" >
</xs:attribute>
      <xs:attribute name="selected" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="selectable" type="lzx:boolean" >
</xs:attribute>
      <xs:attribute name="regularColor" type="lzx:color" default="black" >
</xs:attribute>
      <xs:attribute name="ownerGrid" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="onselected" type="xs:string" >
</xs:attribute>
      <xs:attribute name="lineColor" type="lzx:color" default="black" >
</xs:attribute>
      <xs:attribute name="highlighted" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="highlightColor" type="lzx:color" default="black" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basedatepickerday" type="lzx:basedatepickerday" >
</xs:element>
  <xs:complexType name="basedatepickerday" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="selected" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates if this day is currently selected 
              @keywords public
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectable" type="lzx:boolean" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates if this day is selectable.  The day is selectable if 
              it is within the range of possible selected dates 
              @keywords public 
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="disabled" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates if this day should be enabled or disabled.  The day 
              would be disbled if it should not show its daynum.
              @keywords public 
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="daynum" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The day of the month to be displayed 
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="viewspoolmanager" type="lzx:viewspoolmanager" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private 
    Manage a hash table of viewspool 
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="viewspoolmanager" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="pools" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private 
    Manage a hash table of viewspool 
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datapath" type="lzx:datapath" >
<xs:annotation>
<xs:documentation xml:lang="en">
A cursor in a dataset.
A datapointer is an object that represents a pointer to a node in a lz.dataset. The datapointer can be repositioned using either cursor movements calls such as LzDatapointer.selectNext(), or by running an XPath request via LzDatapointer.setXPath().

Datapointers support a subset of the XPath specification, which uses a notation similar to the UNIX file-system to refer to nodes within a dataset. Once a datapointer is bound to a node in a dataset it will keep pointing to that node until it is moved. If the dataset is edited, the behavior of the datapointer will be controlled by its rerunxpath attribute. If this attribute is true, it will continue pointing to its current node as long as it is valid. 
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datapath" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:datapointer">
      <xs:attribute name="spacing" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The spacing (in pixels) between replicated views.
[Note] 	Note
This attribute is only available if replication is set to either "lazy" or "resize".  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sortpath" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
An XPath to use to obtain the sort key for sorting if replication occurs. To change this attribute, use .setAttribute('sortpath', ...),  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sortorder" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The order to use to sort the dataset if replication occurs. One of "ascending" or "descending" to use built in dictionary sort, or a function which compares two strings and returns 1 if the strings are in order, 0 if they are the same, and -1 if they are out of order. To change this attribute, use setAttribute('sortorder', ...).  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="replication" type="xs:string" default="normal" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Determines whether to use normal or lazy replication, if the datapath matches more than one node. See the section on Replication in the Guide for information about the use of this attribute.
[Note] 	Note
The choice of replication style implies a choice of replication manager. Each replication manager may have additional attributes which are specified as attributes of the datapath. For example, lz.LazyReplicationManager takes axis and spacing attributes. See the documentaion for the corresponding replication manager for detailed information on these additional attributes.

One of: 	'normal' | 'lazy' | 'resize'  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pooling" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
		This attribute applies to datapaths which match multiple nodes and force replication. If pooling is true, views that are data-bound to this datapath are recycled if the dataset changes. Otherwise, views are deleted when the data nodes they are bound to disappear, and created when new data nodes match the datapath. See the section on Pooling in the Guide for information about the use of this attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The direction in which the replicated elements will be layed out.
		Note
This attribute is only available if replication is set to either "lazy" or "resize".  
	One of: "x" | "y"  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="icontab" type="lzx:icontab" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A tab item for use in sidebar.lzx - switches between listpanel views </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="icontab" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselistitem">
      <xs:attribute name="label_y" type="xs:string" default="-1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y offset for the label </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_x" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the icon and text are contained in one view, and inset_x sets the x for its position </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="iconname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 optional icon for tab </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="icon_y" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y postion of the icon </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="linestyle" type="lzx:linestyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style for point or border
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="linestyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
      <xs:attribute name="type" type="xs:string" default="solid" >
<xs:annotation>
<xs:documentation xml:lang="en">
 'solid', 'dotted' </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="size" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 pixel size for the stroke of the line </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="color" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 RGB color on the axis line </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="sliderthumb" type="lzx:sliderthumb" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the visual thumb the user drags to select a value </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="sliderthumb" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basesliderthumb">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datepicker" type="lzx:datepicker" >
</xs:element>
  <xs:complexType name="datepicker" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatepicker">
      <xs:attribute name="startAsIcon" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set to true to initially show the datepicker as an
              icon, otherwise set to false.
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oldvalue" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="allowdrag" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="linechartplotarea" type="lzx:linechartplotarea" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords private
     plotarea of linechart </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="linechartplotarea" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:virtualdrawview">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="TestSuite" type="lzx:TestSuite" >
</xs:element>
  <xs:complexType name="TestSuite" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:Test">
      <xs:attribute name="onteststart" type="xs:string" >
</xs:attribute>
      <xs:attribute name="ontestfinish" type="xs:string" >
</xs:attribute>
      <xs:attribute name="ontestfail" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onsuitestart" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onsuitefinish" type="xs:string" >
</xs:attribute>
      <xs:attribute name="controlPanel" type="xs:string" default="${canvas.lzunitControlPanel}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_datepicker_dirButton" type="lzx:_datepicker_dirButton" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="_datepicker_dirButton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colorslider" type="lzx:colorslider" >
</xs:element>
  <xs:complexType name="colorslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="inputtext" type="lzx:inputtext" >
<xs:annotation>
<xs:documentation xml:lang="en">

The basic input-text element.
JavaScript: lz.inputtext

This tag creates an area of the canvas that the user can use to edit text. It is equivalent to the HTML &lt;input type="text"&gt;, &lt;input type="password"&gt;, and textarea tags.

See the documentation for the &lt;text&gt; tag for a description of the width and height attributes, and of scrolling. 
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="inputtext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:text">
      <xs:attribute name="password" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, the inputtext contents will be obscured </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onenabled" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sent whenever the text field is enabled. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="enabled" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, the inputtext will be editable </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="lazyreplicator" type="lzx:lazyreplicator" >
</xs:element>
  <xs:complexType name="lazyreplicator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:replicator">
      <xs:attribute name="clonesoffset" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="clonedel" type="xs:string" default="null" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videoscreen" type="lzx:videoscreen" >
<xs:annotation>
<xs:documentation xml:lang="en">
 used by videoplayer component
          @access private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="videoscreen" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="volume" type="xs:string" default="1.0" >
</xs:attribute>
      <xs:attribute name="videoWidth" type="xs:string" default="${             Math.min(this.innerWidth,                      this.innerHeight * this.aspectRatio)}" >
</xs:attribute>
      <xs:attribute name="videoHeight" type="xs:string" default="${             Math.min(this.innerHeight,                      this.innerWidth / this.aspectRatio)}" >
</xs:attribute>
      <xs:attribute name="url" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="http" >
</xs:attribute>
      <xs:attribute name="starttime" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="innerWidth" type="xs:string" default="${             this.width - (this.borderLeft + this.borderRight)}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the actual width of the videoview 
            @access private
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="innerHeight" type="xs:string" default="${             this.height - (this.borderTop + this.borderBottom)}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the actual height of the videoview 
            @access private
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="debug" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 true for verbose debug logging </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="capturing" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="borderTop" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="borderRight" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="borderLeft" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="borderBottom" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="autoplay" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="aspectRatio" type="xs:string" default="$once{             4 / 3}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="lzradiobutton" type="lzx:lzradiobutton" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Subclass of radiobutton with customizable look.  apps should either
        include lzradio_resources.lzx (to get default look) or define
        a "lzradio_rsrc" resource with the same format. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="lzradiobutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseradiobutton">
      <xs:attribute name="text_y" type="lzx:number" default="$once{this._rb.height/2 - this._title.height/2}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The y position of the text label. Default: centered. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_x" type="lzx:number" default="$once{this._rb.width + 2}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The x position of the text label. Default: 2 pixels past
              radiobutton resource. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="XMLHttpRequest" type="lzx:XMLHttpRequest" >
</xs:element>
  <xs:complexType name="XMLHttpRequest" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="timeout" type="xs:string" default="60000" >
</xs:attribute>
      <xs:attribute name="statusText" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 String message accompanying the status code </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="status" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Numeric code returned by server, such as 404 for "Not Found" or 200 for "OK" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="responseXML" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 DOM-compatible document object of data returned from server process </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="responseText" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 String version of data returned from server process </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="readyState" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
  Object status integer: 0 Uninitialised The initial value. 1 Open The open() method has been successfully called. 
              2 Sent The send() method has been successfully called, but no data has yet been received. 3 Receiving Data is being received, 
              but the data transfer is not yet complete. 4 Loaded The data transfer has been completed. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proxied" type="xs:string" default="$once{canvas.proxied}" >
</xs:attribute>
      <xs:attribute name="parsexml" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="onreadystatechange" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="headers" type="xs:string" default="null" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="valuelinestyle" type="lzx:valuelinestyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 valuelinestyle is used to set style to the 
     NOTE: valuelinestyle extends basestyle
     @access public
     </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="valuelinestyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="fileupload" type="lzx:fileupload" >
<xs:annotation>
<xs:documentation xml:lang="en">

    @topic Incubator
    @subtopic Components
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="fileupload" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="uploadenable" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Enable upload. True to enable uploading, false to disable uploading. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="msg" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 message of feedback to user </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxsize" type="xs:string" default="10000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Max file size in bytes </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fileref" type="xs:string" default="$once{new flash.net.FileReference()}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 file reference, for internal use 
            @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="command" type="lzx:command" >
<xs:annotation>
<xs:documentation xml:lang="en">

   
    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
               Use is subject to license terms.
   
    @affects lzcommand
    @access public
    @topic LFC
    @subtopic Views
    @devnote A command is an object that sends an event in response to keyboard input.
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="command" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

    If the command is active, this event is sent
    when the keys array are pressed simultaneously.
    @lzxtype event
  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="keys" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 array of keys (strings) that, when pressed together,
    cause the onselect event of the command to be sent. For example:
    setAttribute('key', ['a', 'shift'])
    @type [String]
  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="key" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

  WTF?  See LPP-4982, LPP-7814
  Necessary to add "key" to the schema
  @access private
</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="active" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">

    true if the command is currently active.
    The default is &lt;i&gt;true&lt;/i&gt;.
    @type Boolean
  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="DisplayKeys" type="xs:string" default="{control:'Ctrl', shift:'Shift', alt:'Alt'}" >
<xs:annotation>
<xs:documentation xml:lang="en">

 * Mapping from key names to display strings used by keysToString
 * @type Dictionary
 * @keywords read-only
 </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colormenu" type="lzx:colormenu" >
</xs:element>
  <xs:complexType name="colormenu" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetrackgroup">
      <xs:attribute name="owner" type="xs:string" default="null" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datastyle" type="lzx:datastyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 dataseriesstyle is used for drawing the appearance of a dataseries
      @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datastyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="hotspot" type="lzx:hotspot" >
<xs:annotation>
<xs:documentation xml:lang="en">

This class is a contract interface for hotspots that can be used
by the imagemap class. A generic hotspot does three things:
1. Tells us if it contains a point
2. Performs some action on entry
3. Performs some action on leaving
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="hotspot" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="circlehotspot" type="lzx:circlehotspot" >
<xs:annotation>
<xs:documentation xml:lang="en">

A general hotspot for points inside a circle.
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="circlehotspot" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:hotspot">
      <xs:attribute name="y" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The Y coordinate of the center </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="x" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The X coordinate of the center </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="radius" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The radius of the circle </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basedatepickerweek" type="lzx:basedatepickerweek" >
</xs:element>
  <xs:complexType name="basedatepickerweek" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="dayclass" type="xs:string" default="$once{classroot.dayclass}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Name of the day class instance to use.  
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videolibrarypopup" type="lzx:videolibrarypopup" >
</xs:element>
  <xs:complexType name="videolibrarypopup" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="yourY" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="yourX" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="yourWidth" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="yourHeight" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="url" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="title" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="popupWidth" type="xs:string" default="300" >
</xs:attribute>
      <xs:attribute name="popupHeight" type="xs:string" default="${this.f.height + 2}" >
</xs:attribute>
      <xs:attribute name="pinYourYPos" type="xs:string" default="0.0" >
</xs:attribute>
      <xs:attribute name="pinYourXPos" type="xs:string" default="0.5" >
</xs:attribute>
      <xs:attribute name="pinY" type="xs:string" default="${             this.yourY +             (this.pinYourYPos * this.yourHeight) -             (this.pinMyYPos * this.height)}" >
</xs:attribute>
      <xs:attribute name="pinX" type="xs:string" default="${             this.yourX +             (this.pinYourXPos * this.yourWidth) -             (this.pinMyXPos * this.width)}" >
</xs:attribute>
      <xs:attribute name="pinMyYPos" type="xs:string" default="1.0" >
</xs:attribute>
      <xs:attribute name="pinMyXPos" type="xs:string" default="0.5" >
</xs:attribute>
      <xs:attribute name="description" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="atts" type="xs:string" default="null" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tabpane" type="lzx:tabpane" >
</xs:element>
  <xs:complexType name="tabpane" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetabpane">
      <xs:attribute name="tabwidth" type="lzx:number" default="-1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of the tab associated with this tabpane. If not set, the tab
              will resize itself to fit. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetabpanecontent" type="lzx:basetabpanecontent" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is the content of a basetabpane.
          @keywords private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basetabpanecontent" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="borderinput" type="lzx:borderinput" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Components
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="borderinput" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
      <xs:attribute name="labelwidth" type="lzx:number" default="80" >
</xs:attribute>
      <xs:attribute name="labelstyle" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 should be an object of type "textstyle" </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="label" type="xs:string" >
</xs:attribute>
      <xs:attribute name="changed" type="xs:string" default="${this.txt.changed}" >
<xs:annotation>
<xs:documentation xml:lang="en">

      @topic Incubator
      @subtopic Components
  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="stepper" type="lzx:stepper" >
</xs:element>
  <xs:complexType name="stepper" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
      <xs:attribute name="step" type="lzx:number" default="1" >
</xs:attribute>
      <xs:attribute name="numberAlign" type="xs:string" default="left" >
</xs:attribute>
      <xs:attribute name="minimum" type="lzx:number" >
</xs:attribute>
      <xs:attribute name="maximum" type="lzx:number" >
</xs:attribute>
      <xs:attribute name="initialNumber" type="lzx:number" default="1" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="rectangularchart" type="lzx:rectangularchart" >
<xs:annotation>
<xs:documentation xml:lang="en">

       class that provides all common features for the rectangular charts like line, bar and column
       @access public
       </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="rectangularchart" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:chart">
      <xs:attribute name="verticalGridLines" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Determines if the vertical grid lines are going to be used </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onRenderStop" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onRenderStart" type="xs:string" >
</xs:attribute>
      <xs:attribute name="miny" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum virtual value to be rendered in the 'y' axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The minimum virtual value to be rendered in the 'x' axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxy" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum virtual value to be rendered in the 'y' axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxx" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum virtual value to be rendered in the 'x' axis </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="horizontalGridLines" type="lzx:boolean" default="false" >
</xs:attribute>
      <xs:attribute name="horizontalGridBands" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Determines if the horizontal grid lines are going to be used </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="gridlinecolor" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="defaultminy" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="defaultminx" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="defaultmaxy" type="lzx:number" default="100" >
</xs:attribute>
      <xs:attribute name="defaultmaxx" type="lzx:number" default="100" >
</xs:attribute>
      <xs:attribute name="dataSeriesLeaf" type="xs:string" default="${null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="modaldialog" type="lzx:modaldialog" >
</xs:element>
  <xs:complexType name="modaldialog" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:windowpanel">
      <xs:attribute name="content_inset_top" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The top inset for the dialog contents from the edge of the window
              inner frame. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="content_inset_right" type="xs:string" default="14" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The right inset for the dialog contents from the edge of the
              window inner frame </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="content_inset_left" type="xs:string" default="14" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The left inset for the dialog contents from the edge of the
              window inner frame. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="content_inset_bottom" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The bottom inset for the dialog contents from the edge of the
              window inner frame. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="menufloatinglist" type="lzx:menufloatinglist" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="menufloatinglist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:floatinglist">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="ZoomView" type="lzx:ZoomView" >
</xs:element>
  <xs:complexType name="ZoomView" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
      <xs:attribute name="opened" type="xs:string" >
</xs:attribute>
      <xs:attribute name="closed" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basecheckbox" type="lzx:basecheckbox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A checkbox component representing a boolean. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basecheckbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="gridcolumn" type="lzx:gridcolumn" >
</xs:element>
  <xs:complexType name="gridcolumn" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basegridcolumn">
      <xs:attribute name="sortable" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the column header is clickable and will initiate a 
              sort </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showheader" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If set to false, then no header will be shown for this column.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resizemargin" type="lzx:number" default="3" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the resizer between columns.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resizable" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If set to false, the column cannot be resized. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="item" type="lzx:item" >
</xs:element>
  <xs:complexType name="item" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="showcomponenthelpers" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="root" type="xs:string" default="this" >
</xs:attribute>
      <xs:attribute name="reference" type="xs:string" >
</xs:attribute>
      <xs:attribute name="opendefaultplacement" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="open" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="isview" type="lzx:boolean" default="false" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="method" type="lzx:method" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Attaches a function or event handler to an object or class. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="method" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="name" type="xs:string" use="required" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The name of a variable that will be set to this object when the application is started. If this element is directly within a canvas or library element, the global variable and the canvas property with this name will be set to this object. If this element is within another object, that object's property with this name will be set to this object. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="args" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The parameter names of this method. The value of this attribute is a comma-separated list of JavaScript identifiers. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="allocation" type="xs:string" default="instance|class" >
<xs:annotation>
<xs:documentation xml:lang="en">
 One of:
class
    The attribute will be an attribute of the class; to refer to it, you say lz.classname.attributename . 
instance
    Each instance will have an attribute with the specified properties ( name , type , value , etc.). 

You can set allocation to class to get static attributes. Static properties are attached to the class itself, for example lz.classname . </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="baseopttreenode" type="lzx:baseopttreenode" >
</xs:element>
  <xs:complexType name="baseopttreenode" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="startdragdelay" type="xs:string" default="800" >
</xs:attribute>
      <xs:attribute name="startdragdel" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="open" type="xs:string" default="${ dopen }" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A boolean value representing whether or not this node
              is open. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="indent" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The amount, in pixels, to indent each element of the tree.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="highlight" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, this element is selected </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dragging" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="depth" type="xs:string" default="${ ddepth }" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A 0-based depth number that indicates the depth of this
              element in the tree. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datalistselector" type="lzx:datalistselector" >
<xs:annotation>
<xs:documentation xml:lang="en">
 a helper class that wraps the dataselectionmanager in some
        higher level APIs, used by baselist </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datalistselector" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:dataselectionmanager">
      <xs:attribute name="multiselect" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If multiselect is true, multiple selection is enabled.
        When the shift key is down, a range of items is selected.
        When the control key is down, any item may be added to the
        selection.
             Default: false </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="gradientview" type="lzx:gradientview" >
</xs:element>
  <xs:complexType name="gradientview" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="stretchWidth" type="lzx:number" >
</xs:attribute>
      <xs:attribute name="stretchHeight" type="lzx:number" >
</xs:attribute>
      <xs:attribute name="gradientType" type="xs:string" default="linear" >
</xs:attribute>
      <xs:attribute name="gradientOrientation" type="xs:string" default="vertical" >
</xs:attribute>
      <xs:attribute name="colorTo" type="lzx:color" >
</xs:attribute>
      <xs:attribute name="colorFrom" type="lzx:color" >
</xs:attribute>
      <xs:attribute name="borderSizeTop" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="borderSizeRight" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="borderSizeLeft" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="borderSizeBottom" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="borderSize" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="borderColorTop" type="lzx:color" >
</xs:attribute>
      <xs:attribute name="borderColorRight" type="lzx:color" >
</xs:attribute>
      <xs:attribute name="borderColorLeft" type="lzx:color" >
</xs:attribute>
      <xs:attribute name="borderColorBottom" type="lzx:color" >
</xs:attribute>
      <xs:attribute name="borderColor" type="lzx:color" default="0x000000" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="dragger" type="lzx:dragger" >
</xs:element>
  <xs:complexType name="dragger" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tabs" type="lzx:tabs" >
</xs:element>
  <xs:complexType name="tabs" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetabs">
      <xs:attribute name="tabspacing" type="lzx:number" default="-15" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Spacing between the tabs. Defaults to -15 so tabs overlap. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tabalign" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Align the set of tabs within the dimensions of the "tabs"
             container ("left", "center", "right"). </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="simpledefaultlist" type="lzx:simpledefaultlist" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A list class that handles a default value. 
          Input and output for the list is defined to be in this format:
          &lt;code&gt;
          &lt;list name="fubar"&gt;
            &lt;item text="foo" value="bar" default="true"/&gt;
            &lt;item text="goo" value="mar"/&gt;
          &lt;/list&gt;
          &lt;/code&gt;
         
          Currently only works with dataoption="lazy" or "pooling"
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="simpledefaultlist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:list">
      <xs:attribute name="defaultitem" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 LzDataElement of the default node 
              null means the list has no default </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoselectdefault" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set to true if the default item should be selected whenever
            data is received </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="vscrollbar" type="lzx:vscrollbar" >
</xs:element>
  <xs:complexType name="vscrollbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basescrollbar">
      <xs:attribute name="disabledbgcolor" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If this is defined, it will be used as the scrollbar's background
          color when it is disabled. If not provided, the scrollbar will use
          the bgcolor of its closest parent that has a bgcolor defined.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="polygonhotspot" type="lzx:polygonhotspot" >
<xs:annotation>
<xs:documentation xml:lang="en">

A general hotspot for an N-sided polygon.
This will create a polygon whose sides are described
by moving in order to the points added by calling addPoint,
returning back to the first point added to close the polygon.
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="polygonhotspot" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:hotspot">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="debugger_shadow_right" type="lzx:debugger_shadow_right" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
    Drop shadow for the right side of the debugger window 

    @keywords private
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="debugger_shadow_right" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colorspot" type="lzx:colorspot" >
</xs:element>
  <xs:complexType name="colorspot" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:colormenuitem">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datepickerweek" type="lzx:datepickerweek" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is the implementation of the datepickerweek for 
          the datepicker </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datepickerweek" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatepickerweek">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baseradiobutton" type="lzx:baseradiobutton" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Class baseradiobutton: represents a single radio button. If groupname
           is defined, it will reference an baseradiogroup that's named
           groupname. If both groupname and group are not defined, this
           radiobutton will attempt to use a baseradiogroup ancestor in its view
           hierarchy. If it can't find one, it will use a default baseradiogroup
           with groupname 'lzdefaultgroup'. If this radiobutton is inside a
           form, an implicit baseradiogroup is created as a child the form.

           The first radiobutton is special for implicitly created
           baseradiogroups. A baseradiogroup will inherit the groupdatapath,
           used as the baseradiogroup's datapath, and submit attributes from the
           first radiobutton, which are used during its instantiation. Those
           same attributes are ignored for subsequent radiobuttons belonging in
           the same group. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="baseradiobutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="value" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Value of this radiobutton. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="submitname" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The submit name for a baseradiogroup. This must be set by the first
              radiobutton in a baseradiogroup to take effect. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="submit" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether a baseradiogroup will send its data when a form is
              submitted. This must be set by the first radiobutton in a
              baseradiogroup to take effect. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selected" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True if radio's group value is the same as group's. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselected" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when selected attribute selected or unselected. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="groupname" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Name of baseradiogroup. If not defined, it will use group reference as
              its group. If both groupname and group are not defined, this
              radiobutton will attempt to use a baseradiogroup ancestor in its view
              hierarchy. If it can't find one, it will use a default baseradiogroup
              with groupname 'lzdefaultgroup'. If this radiobutton is inside a
              form, an implicit baseradiogroup is created as a child of the
              form. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="groupdatapath" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The value datapath for a baseradiogroup. This must be set by the first
              radiobutton in a baseradiogroup to take effect. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="group" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Reference to baseradiogroup. If groupname is defined, it will
              reference an baseradiogroup that's named groupname. If both groupname
              and group are not defined, this radiobutton will attempt to use a
              baseradiogroup ancestor in its view hierarchy. If it can't find one,
              it will use a default baseradiogroup with groupname
              'lzdefaultgroup'. If this radiobutton is inside a form, an
              implicit baseradiogroup is created as a child of the form. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_floatshadow" type="lzx:_floatshadow" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The shadows width and height are set to the width and height of the view
          it is trying to apply a shadow to.
          @keywords private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="_floatshadow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="shadowsize" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="oncornerresourcenumber" type="xs:string" >
</xs:attribute>
      <xs:attribute name="onbottomvisible" type="xs:string" >
</xs:attribute>
      <xs:attribute name="offsety" type="xs:string" default="10" >
</xs:attribute>
      <xs:attribute name="cornerresourcenumber" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="bottomvisible" type="xs:string" default="true" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="edittext" type="lzx:edittext" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This component provides the look and feel for user editable text, data
          binding, and focus events. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="edittext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
      <xs:attribute name="text_y" type="lzx:number" default="${multiline ? 2 : Math.round(((this.height - this.field.getTextHeight())/2))} " >
<xs:annotation>
<xs:documentation xml:lang="en">
 the y position of the text. default: centered, unless it is mutltiline </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="resizable" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set to true if you plan to change the width or height of the
              component at run-time.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pattern" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A regular expression describing set of characters allowed in
              this field. Restrict the characters that can be entered to a
              pattern specified by a regular expression. Currently only the
              expression [ ]* enclosing a set of characters or character
              ranges, preceded by an optional "^", is supported. 
              examples: [0-9]* , [a-zA-Z0-9]*, [^0-9]* </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="password" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set to true for a password field. Text will appear as ****.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="multiline" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set to true for multiple lines.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxlength" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum number of chars that can be entered. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="debugger_shadow_bottom" type="lzx:debugger_shadow_bottom" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
    Drop shadow for the bottom of the debugger window

    @keywords private
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="debugger_shadow_bottom" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="img" type="lzx:img" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="img" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="width" type="xs:string" >
</xs:attribute>
      <xs:attribute name="vspace" type="xs:string" >
</xs:attribute>
      <xs:attribute name="src" type="xs:string" >
</xs:attribute>
      <xs:attribute name="hspace" type="xs:string" >
</xs:attribute>
      <xs:attribute name="height" type="xs:string" >
</xs:attribute>
      <xs:attribute name="align" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="basebuttonrepeater" type="lzx:basebuttonrepeater" >
</xs:element>
  <xs:complexType name="basebuttonrepeater" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basebutton">
      <xs:attribute name="onmousestilldown" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="simpleboundslayout" type="lzx:simpleboundslayout" >
</xs:element>
  <xs:complexType name="simpleboundslayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between each view in the layout. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates, 'x' or 'y'. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="newcheckbox" type="lzx:newcheckbox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The basecheckbox implementation representing a boolean, i.e., checked
          if true, else false. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="newcheckbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecheckbox">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="menubar" type="lzx:menubar" >
</xs:element>
  <xs:complexType name="menubar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="imagemap" type="lzx:imagemap" >
<xs:annotation>
<xs:documentation xml:lang="en">

A class which will activate hotspots as the mouse passes over them in a parent view, or deactivate
them as they leave. This class operates by havign a number of objects subclassed from hotspot added.
Each of these is then queried as the mouse passes about the view to alter its activation state.
This class will operate either exclusively, only one active hotspot at a time, or may allow
multiple active hotspots at once if exclusive is true (it is false by default). The class
also provides suspend and resume methods to pause the classes handling of the hotspots and
resume respectively. Note that the priority of choosing an active spot is random. That is
in exclusive mode (or switching from non-exclusive to exclusive mode) if two spot a and b
both contain x and y, no guarantee is made as to which of a and b will be chosen to be
the active exclusive view. Additionally this will only activate and deactivate hotspots
within the parent view. Even if a hotspot added to this map defines an active region outside
the parent view it will not be honored. Therefore it is strongly recommended that no hotspots
define an area outside of the view in which the are active. In order for this class
to work the view in which it is defined must be clickable.
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="imagemap" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="exclusive" type="lzx:boolean" default="true" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="reverselayout" type="lzx:reverselayout" >
</xs:element>
  <xs:complexType name="reverselayout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:layout">
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between each view in the layout </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to inset the last view controlled by the layout</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="end" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 When true (the default), then the layout will push the subviews 
              to the right (or bottom) of the containing view </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which this layout operates. One of 'x' or 'y'. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="textstyle" type="lzx:textstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Simple class that adds font attributes to style class
        &lt;example executable="false"&gt;
        &amp;lt;textstyle font="futura" fontsize="12" fontstyle="bold" /&amp;gt;
        &lt;/example&gt;
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="textstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:style">
      <xs:attribute name="fontstyle" type="xs:string" default="plain" >
</xs:attribute>
      <xs:attribute name="fontsize" type="xs:string" default="11" >
</xs:attribute>
      <xs:attribute name="font" type="xs:string" default="arial" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Simple class that adds font attributes to style class
        &lt;example executable="false"&gt;
        &amp;lt;textstyle font="futura" fontsize="12" fontstyle="bold" /&amp;gt;
        &lt;/example&gt;
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetrackgroup" type="lzx:basetrackgroup" >
</xs:element>
  <xs:complexType name="basetrackgroup" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="trackingrate" type="xs:string" default="150" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The periodic rate in milliseconds to track the mouse</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tracking" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Indicates if this trackgroup is currently tracking or not.
              It can bet set to turn tracking on or off, or use the methods
              activatetrackgroup and deactivatetrackgroup </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="deactivateevents" type="xs:string" default="['onmouseup']" >
<xs:annotation>
<xs:documentation xml:lang="en">
 an array of events which will deactivate tracking. 
           To override, you must declare as once. For example:
           &lt;programlisting&gt;&amp;lt;attribute name="deactivateevents" value="['onmouseover']" when="once"/&amp;gt;&lt;/programlisting&gt;
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="boundsref" type="xs:string" default="${this}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The view that will be used to define the bounding rect for tracking
              the mouse </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="activateevents" type="xs:string" default="['onmousedown']" >
<xs:annotation>
<xs:documentation xml:lang="en">
 an array of events which will activate tracking. 
           To override, you must declare as once. For example:
           &lt;programlisting&gt;&amp;lt;attribute name="activateevents" value="['onmouseover']" when="once"/&amp;gt;&lt;/programlisting&gt;
        </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="shadowbox" type="lzx:shadowbox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A basic container view with an inner dropshadow effect.
        &lt;example executable="false"&gt;
            &amp;lt;shadowbox width="200" height="200"&amp;gt;
                &amp;lt;view bgcolor="red" width="200" height="200"/&amp;gt;
            &amp;lt;/shadowbox&amp;gt;
        &lt;/example&gt;
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="shadowbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="shadowleft" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 display shadow along left side </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="edgecolor_tl" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 bgcolor of one pixel wide border on right and bottom sides only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="edgecolor" type="xs:string" default="0xD9D9D9" >
<xs:annotation>
<xs:documentation xml:lang="en">
 bgcolor of one pixel wide border on right and bottom sides only </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="textformat" type="lzx:textformat" >
<xs:annotation>
<xs:documentation xml:lang="en">

    An object to specify the format of a text object.  Used only in 
    Javascript by richinputtext.setTextFormat.
    @shortdesc Formats rich text
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="textformat" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="url" type="xs:string" >
</xs:attribute>
      <xs:attribute name="underline" type="lzx:boolean" >
</xs:attribute>
      <xs:attribute name="target" type="xs:string" >
</xs:attribute>
      <xs:attribute name="size" type="xs:string" >
</xs:attribute>
      <xs:attribute name="rightmargin" type="xs:string" >
</xs:attribute>
      <xs:attribute name="leftmargin" type="xs:string" >
</xs:attribute>
      <xs:attribute name="leading" type="xs:string" >
</xs:attribute>
      <xs:attribute name="italic" type="lzx:boolean" >
</xs:attribute>
      <xs:attribute name="indent" type="xs:string" >
</xs:attribute>
      <xs:attribute name="font" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

    An object to specify the format of a text object.  Used only in 
    Javascript by richinputtext.setTextFormat.
    @shortdesc Formats rich text
</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="color" type="lzx:color" >
</xs:attribute>
      <xs:attribute name="bold" type="lzx:boolean" >
</xs:attribute>
      <xs:attribute name="align" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="boxview" type="lzx:boxview" >
<xs:annotation>
<xs:documentation xml:lang="en">

                implements the CSS box model in a view that allows for margins, padding, and a border.
                Allows for an italized title.
                By default functions the same as a view, but has a 1 pixel black border.
                v1.0 - Original
                v1.1 - Bugfix added " - parent.parent.vTitle.height" to vPadding height on !_contentheight state
                @author Brad Erickson
         </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="boxview" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="title" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Italized title of the view, appears in upper left </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="paddingsize" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Size of the padding </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="marginsize" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Size of the margin </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="contentbgcolor" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Background color of the element, default is transparent</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordersize" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Size of the border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordercolor" type="xs:string" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the border, default is black </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="virtualdrawview" type="lzx:virtualdrawview" >
</xs:element>
  <xs:complexType name="virtualdrawview" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="miny" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxy" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxx" type="lzx:number" default="100" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="markers" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="tabelement" type="lzx:tabelement" >
</xs:element>
  <xs:complexType name="tabelement" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basetabelement">
      <xs:attribute name="text_y" type="xs:string" default="${this.top.header.height/2 - this.top.header.txt.height/2}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The y position of the text field in the header area. Default is centered. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text_x" type="xs:string" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The x position of the text field in the header area. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shadowvisible" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Boolean to set the shadow of this tabelement. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shadowheight" type="xs:string" default="4" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The height of the shadow. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_top" type="xs:string" default="${parent.inset_top}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The top inset for content appearing within a tabelement. Default
              is the containing tabslider's inset_top value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_right" type="xs:string" default="${parent.inset_right}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The right inset for content appearing within a tabelement. Default
              is the containing tabslider's inset_right value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_left" type="xs:string" default="${parent.inset_left}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The left inset for content appearing within a tabelement. Default
              is the containing tabslider's inset_left value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_bottom" type="xs:string" default="${parent.inset_bottom}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The bottom inset for content appearing within a tabelement. Default
              is the containing tabslider's inset_bottom value. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="headerpadding" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Insets the header art on the x-axis. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="colorrow" type="lzx:colorrow" >
</xs:element>
  <xs:complexType name="colorrow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="axisstyle" type="lzx:axisstyle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 style for axis
      @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="axisstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
      <xs:attribute name="direction" type="xs:string" default="y | x" >
<xs:annotation>
<xs:documentation xml:lang="en">
 direction of the axis: x or y </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videoplayer" type="lzx:videoplayer" >
<xs:annotation>
<xs:documentation xml:lang="en">
 provides standard UI controls for video playback
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="videoplayer" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="url" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 url of the stream to play
              see mediastream for details </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="http" >
<xs:annotation>
<xs:documentation xml:lang="en">
 type of stream: 'http' or 'rtmp', 
              see mediastream for details </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="stream" type="xs:string" default="${vscreen.ms}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 a reference to the stream to enable direct control,
              such as vp.steam.play or vp.stream.seek(20) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="starttime" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Show the frame from this time (in seconds) whenever the url 
            is set for video playback.
            Use -1 to show no frame (which will leave the image as it
            was when switching videos) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sliderTop" type="xs:string" default="${             this.height - (this.borderBottom + this.sliderHeight)}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 internal: derived from public attributes 
              @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sliderHeightVal" type="xs:string" default="16" >
<xs:annotation>
<xs:documentation xml:lang="en">
 see note above 
          @access private
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sliderHeight" type="xs:string" default="${             this.showslider ? this.sliderHeightVal : 0}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the controls stretch to this height, but I don't see a test
              for this and I can't imagine it looks good so I'm marking
              this private
          @access private
        </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sliderGap" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the vertical space between the video image and the controls </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showslider" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 why would you want this? no test case, marking private 
              @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showscreen" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 why would you want this? no test case, marking private 
              @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showVolumeControl" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 if true, display a volume control </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showTimeDisplay" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 if true, display the current and total time </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="screenWidth" type="xs:string" default="${             this.width - (this.borderLeft + this.borderRight)}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 internal: derived from public attributes 
              @access private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="progressColor" type="xs:string" default="0x00ff00" >
<xs:annotation>
<xs:documentation xml:lang="en">
 color of the progress bar </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="debug" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 true for verbose debug logging </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderTop" type="xs:string" default="${this.border}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the top border on the video image.  Default: this.border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderRight" type="xs:string" default="${this.border}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the right border on the video image.  Default: this.border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderLeft" type="xs:string" default="${this.border}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the left border on the video image.  Default: this.border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderBottom" type="xs:string" default="${this.border}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the bottom border on the video image.  Default: this.border </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the border around the video image.  Default: 5 </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoplay" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 when true, playback will start automatically
              without user action </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="aspectRatio" type="xs:string" default="$once{4/3}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 if non-zero, then this will be used to maintain the
              aspect ratio based on the width of the videoscreen.
              Default: 4/3
        </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datastylelist" type="lzx:datastylelist" >
<xs:annotation>
<xs:documentation xml:lang="en">
 list of datastyle
      @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datastylelist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basestyle">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basegrid" type="lzx:basegrid" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An abstract container for data rows, relying on lazy replication
          to make it possible to display large datasets.</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basegrid" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="spacing" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Spacing between the rows. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sizetoheader" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A boolean. If true, the grid will keep its width set to the size
              of the header. This is automatically set to true for grids that
              do not have a set width.  This is initially set to 0, which means
              that it is not true, but if it is explicitly set to false, the
              automatic behavior will be disabled for grids with no set
              width.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showvlines" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, lines will be drawn (in component's style's bordercolor)
              horizontally at each at each row division. This attribute cannot
              be set after instantiation.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shownitems" type="xs:string" default="-1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sets the height of the grid to show a maximum of 'n' items. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showhlines" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, lines will be drawn (in component's style's bordercolor)
              vertically at each at each column division. This attribute can be
              set after instantiation.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectable" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If false, the rows are not clickable and the grid does not support selection. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rowheight" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Optional height for the rows contained by the grid. If no
              value is given for this attribute, it will be set to the
              calculated height of rows. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Event sent when the grid selection changes.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="multiselect" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, the list will allow for multiple selection, and the 
              getSelection method will always return a list. If false, only
              single selection is allowed.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hilite" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The view which is currently hilited.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="contentdatapath" type="xs:string" default="*" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The datapath to use for the contents of the grid. By
              default, this is set to "*", meaning all of the nodes underneath
              the datacontext of the grid. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="columns" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An array holding the basegridcolumns used by this grid </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgcolor1" type="lzx:color" default="$immediately{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If given, sets the bgcolor for odd numbered rows. If not given,
              the bgcolor for these rows is taken from the style's bgcolor.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgcolor0" type="lzx:color" default="$immediately{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If given, sets the bgcolor for even numbered rows. If not given,
              the bgcolor for these rows is taken from the style's bgcolor.</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="verticalaxis" type="lzx:verticalaxis" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Represents the Y axis on the rectangular chart, extends from Axis class
     @access public
        </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="verticalaxis" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:axis">
      <xs:attribute name="datacolumn" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="DebugObject" type="lzx:DebugObject" >
<xs:annotation>
<xs:documentation xml:lang="en">

  DebugObject is a base class for all the other classes in LZUnit that
  supports the debugging of LZUnit itself.

  @keywords public

  @param Boolean debugWrite: Whether or not to emit debugging statements.
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="DebugObject" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="debugWrite" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 whether or not to emit debugging statements </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videoslider" type="lzx:videoslider" >
</xs:element>
  <xs:complexType name="videoslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="waspaused" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="volume" type="xs:string" default="${this.controls.volumebutton.volume}" >
</xs:attribute>
      <xs:attribute name="value" type="xs:string" default="${this.tracking ? this.trackvalue : this.sourcevalue}" >
</xs:attribute>
      <xs:attribute name="trackvalue" type="xs:string" default="0.0" >
</xs:attribute>
      <xs:attribute name="tracktime" type="xs:string" default="${this.trackvalue * this.totaltime}" >
</xs:attribute>
      <xs:attribute name="trackingDelegate" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="tracking" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="totaltime" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="timedisplay" type="xs:string" default="${this.tracking ? this.tracktime : this.time}" >
</xs:attribute>
      <xs:attribute name="time" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="sourcevalue" type="xs:string" default="${this.time / (this.totaltime || 1.0)}" >
</xs:attribute>
      <xs:attribute name="showVolumeControl" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="showTimeDisplay" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="ms" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="color" type="xs:string" default="0x00ff00" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="barchart" type="lzx:barchart" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A chart class that renders horizontal bars.
      Inherits from the chart class.  (Warning: Of beta quality.)
      @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="barchart" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basechart">
      <xs:attribute name="staggerticks" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to alternate lengths of tick lines. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ondrawaxis" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Refreshes drawn chart when direction changes. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="barspace" type="lzx:number" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The space between bars. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="anicomplete" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Dataclip is a view at a fixed size (plotwidth and plotheight, with location
            set by plotx and ploty) that contains an internal view with all the points,
            lines and labels.  As the internal view datapane is scalable and able to be
            dragged around once scaled, it needs to be clipped. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="font" type="lzx:font" >
<xs:annotation>
<xs:documentation xml:lang="en">
Tag for including fonts.
The &lt;font&gt; tag is used to import fonts into an LZX application. Each font in an LZX application has a source file (in TrueType format), a name, and a style (plain, bold, italic, or bold italic).

A font element within a &lt;canvas&gt; or &lt;library&gt; defines a font, which can be referenced by the font attribute of a view, or by the face attribute of the &lt;font&gt; tag within HTML markup. A font element can define a single font face or style, by using the src attribute to refer to a TrueType font that is included in the application. 
 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="font" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="src" type="xs:string" >
</xs:attribute>
      <xs:attribute name="size" type="xs:string" >
</xs:attribute>
      <xs:attribute name="name" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Tag for including fonts.
The &lt;font&gt; tag is used to import fonts into an LZX application. Each font in an LZX application has a source file (in TrueType format), a name, and a style (plain, bold, italic, or bold italic).

A font element within a &lt;canvas&gt; or &lt;library&gt; defines a font, which can be referenced by the font attribute of a view, or by the face attribute of the &lt;font&gt; tag within HTML markup. A font element can define a single font face or style, by using the src attribute to refer to a TrueType font that is included in the application. 
 </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="face" type="xs:string" >
</xs:attribute>
      <xs:attribute name="color" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 HTML specific </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="gridtext" type="lzx:gridtext" >
</xs:element>
  <xs:complexType name="gridtext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:gridcolumn">
      <xs:attribute name="textalign" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Type of content's alignment.
              Possible values are: left, center, right </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="selectable" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether one is able to select the text.  (Only applies
            if the grid isn't editable, because when it's editable,
            the text is automatically selectable.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="editing" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="editbox" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="editable" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If set to false, the field will not be editable. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="fileuploadlist" type="lzx:fileuploadlist" >
</xs:element>
  <xs:complexType name="fileuploadlist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="selected" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 select file or not</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onselect" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Events</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="oncomplete" type="xs:string" >
</xs:attribute>
      <xs:attribute name="maxsize" type="xs:string" default="15000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Max file size  unit: bytes </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="erroroccured" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Error occured </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="class" type="lzx:class" >
</xs:element>
  <xs:complexType name="class" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="isRoot" type="lzx:boolean" >
</xs:attribute>
      <xs:attribute name="implements" type="xs:string" >
</xs:attribute>
      <xs:attribute name="extends" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="listitem" type="lzx:listitem" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A simple listitem that is usually declared inside of a list. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="listitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselistitem">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="focusoverlay" type="lzx:focusoverlay" >
</xs:element>
  <xs:complexType name="focusoverlay" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basefocusview">
      <xs:attribute name="offset" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the offset is used by the brackets to 'offset' themselves from the
              bounding rect of the focusoverlay. The bounce effect is achieved
              by animating this parameter </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="contextmenuitem" type="lzx:contextmenuitem" >
<xs:annotation>
<xs:documentation xml:lang="en">
A menu item within a context menu </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="contextmenuitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="visible" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Sets the visibility of the menu item. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="separatorbefore" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Draw a horizontal separator line before this item in the menu. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="enabled" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Sets the enabled status of the menu item. If false, the menu item is grayed out and will not respond to clicks  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="delegate" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Sets the delegate which will be called when the menu item is selected. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="caption" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
		Sets the text which is displayed for the menu item</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="menuitem" type="lzx:menuitem" >
</xs:element>
  <xs:complexType name="menuitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:textlistitem">
      <xs:attribute name="command" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the command object assigned to be executed when this menuitem is selected </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basedragimage" type="lzx:basedragimage" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the visual representation of an object being dragged.
        See &lt;xref linkend="lz.checkdragstate"/&gt; for usage details 
        @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basedragimage" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="dropgroup" type="xs:string" default="droptarget" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the group that drop targets will register with </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetabslider" type="lzx:basetabslider" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This class is a non-visual container that animates and coordinates the
          sliding of basetabelements. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basetabslider" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselist">
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The spacing of the tabs. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="slideduration" type="xs:string" default="300" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The duration of the tabs openning and closing. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mintabheight" type="xs:string" default="22" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The default height of every tab when closed. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_top" type="xs:string" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The top inset for content appearing within a tabelement. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_right" type="xs:string" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The right inset for content appearing within a tabelement. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_left" type="xs:string" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The left inset for content appearing within a tabelement. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_bottom" type="xs:string" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The bottom inset for content appearing within a tabelement. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="ZoomPolygon" type="lzx:ZoomPolygon" >
</xs:element>
  <xs:complexType name="ZoomPolygon" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:polygonhotspot">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
      <xs:attribute name="parentView" type="xs:string" >
</xs:attribute>
      <xs:attribute name="map" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="whitestyle" type="lzx:whitestyle" >
</xs:element>
  <xs:complexType name="whitestyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:style">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="bigcheckbox" type="lzx:bigcheckbox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The basecheckbox implementation representing a boolean, i.e., checked
          if true, else false. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="bigcheckbox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecheckbox">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="backcircle" type="lzx:backcircle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background circle of the pie.  Has properties set by attributes on the
        respective dataseries. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="backcircle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="pieradius" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The radius of the pie. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawbgborder" type="lzx:color" default="0x000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The border color of the circle. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawbg" type="lzx:color" default="0xCCCCCC" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The background color of the circle. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ctry" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The center y coordinate of the pie. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ctrx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The center x coordinate of the pie. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgborderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the circle's border. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="window" type="lzx:window" >
</xs:element>
  <xs:complexType name="window" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:windowpanel">
      <xs:attribute name="resizable" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, a resize control will appear in the lower-right corner,
              allowing the user to resize the window. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="baseedittext" type="lzx:baseedittext" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This component provides the look and feel for user editable text, data
          binding, and focus events. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="baseedittext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseformitem">
      <xs:attribute name="pattern" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 An expression to restrict the set of characters that are allowed
              to be entered. For example, [0-9]*, [012]*, [a-zA-Z]*,
              [0-9A-Z]*. You can restrict the number of characters using
              maxlength. Default is any character. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="password" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set to true for a password field. Text will appear as ****. 
              This attribute cannot be changed at runtime.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onpattern" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @private </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="multiline" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Set to true for multiple lines. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="maxlength" type="lzx:number" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The maximum number of chars that can be entered. Default is
              unlimited. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="TestCase" type="lzx:TestCase" >
<xs:annotation>
<xs:documentation xml:lang="en">

  TestCase implements an individual test case.

  See the documentation for &lt;xref linkend="lz.TestSuite"/&gt;
  for an example of this tag.

  @param testName: the name of the test
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="TestCase" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:Test">
      <xs:attribute name="testnames" type="xs:string" default="null" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="datepickercombobox" type="lzx:datepickercombobox" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datepickercombobox" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecombobox">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="marker" type="lzx:marker" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
         data marker class </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="marker" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="droptarget" type="lzx:droptarget" >
</xs:element>
  <xs:complexType name="droptarget" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="replicator" type="lzx:replicator" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is a declared replicator for visual elements. Unlike
        OpenLaszlo''s data-replication feature, a replicator can take an
        arbitrary node set that may be passed in as an array.
        Non-replicating elements may be used inside a replicator; only
        the last child inside the replicator is replicated.

        The data attribute of the replicated (cloned) view is set by the
        setData method with data from the nodes array when the clone is
        bound. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="replicator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="xpath" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Compute nodes from this xpath query against the specified dataset </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A pixel amount to use between each replicated view </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="replicatedsize" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size (width or height) in the replication axis of the view
            being replicated.  Assumes all subviews have same replicated size. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pool" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, then instances of the replicated instance are reused
            when possible </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onnodes" type="xs:string" >
</xs:attribute>
      <xs:attribute name="nodes" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The list of nodes over which this replictor acts </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mask" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The view that will clip the replicated nodes.  Defaults to the immediateparent of the container </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataset" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Compute nodes from this dataset </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="container" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The view that will contain the replicated nodes.  Defaults to the immediateparent of the replicator. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="clones" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The list of elements controlled by this repliator </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" default="y" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The axis in which to replicate</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_dbg_lzhdrag" type="lzx:_dbg_lzhdrag" >
</xs:element>
  <xs:complexType name="_dbg_lzhdrag" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:state">
      <xs:attribute name="xdoffset" type="xs:string" default="this.getMouse( 'x' )" >
</xs:attribute>
      <xs:attribute name="x" type="xs:string" default="${this.immediateparent.getMouse( 'x' ) - this.xdoffset}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="legendtitle" type="lzx:legendtitle" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The title for the legend.  This is its own small class because it
        makes constraints easier for adjustments. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="legendtitle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="ttsize" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The title text's font size. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tposit" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The title text's alignment.  (left, right, center) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The title text's color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ltitle" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The title text for the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="defaultlistitem" type="lzx:defaultlistitem" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Text list item that displays a default </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="defaultlistitem" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:textlistitem">
      <xs:attribute name="default_y" type="xs:string" default="$once{this.height/2 - this.defaultlabel._default.height/2}" >
</xs:attribute>
      <xs:attribute name="default_x" type="xs:string" default="40" >
<xs:annotation>
<xs:documentation xml:lang="en">
 x position of default label </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="SyncTester" type="lzx:SyncTester" >
</xs:element>
  <xs:complexType name="SyncTester" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:TestCase">
      <xs:attribute name="tested_object" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

     Refers to object to be tested; this is dependent on specific test run
     @keywords required
     </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="del" type="xs:string" >
</xs:attribute>
      <xs:attribute name="current_method" type="xs:string" default="${cur_meth.xpathQuery('@name')}" >
<xs:annotation>
<xs:documentation xml:lang="en">

     Helps keep track of currently executed method
     @keywords readonly
    </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="dataseries" type="lzx:dataseries" >
<xs:annotation>
<xs:documentation xml:lang="en">
          
        A dataseries in a container for dataseries and datacolumn.
        dataseries can be nested.
        @access public
    </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="dataseries" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="ydatapath" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The data to be linked to the y axis. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="xdatapath" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The data to be linked to the x axis.  (Also used for piechart data.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tooltip" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 (To be developed:) Whether a tooltip is available onmouseover. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showlegendminimized" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to show the legend when the chart is minimized, when
            there are multiple charts. (It is strongly recommended this
            be set to false for multiple pies.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="radiusadjust" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether certain pieces should have radii different from the
            overall pie, and if so, how much shorter or longer, percentage-wise.
            (e.g. A value of 10 would mean 10% greater a radius.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pointsvisible" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw points, and if so, which color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pointshape" type="xs:string" default="square" >
<xs:annotation>
<xs:documentation xml:lang="en">
 What shape to make the point. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pointopacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The opacity of the points. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pointdiameter" type="xs:string" default="5" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the points. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pointborderwidth" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The border around the points. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="pointborder" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw borders around points, and if so, which color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="piebgcolor" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether the area behind the pie is colored, and if so,
            what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="linethickness" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The thickness of the line from the last point to the current point.
            If using data for this attribute, this will determine the thickness
            of the line from the last point to the current point. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="linesvisible" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw a line between points, and if so, which color.
            If using data for this attribute, this will determine whether
            to draw a line from the last point to the current point. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendy" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the y coordinate of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendx" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the x coordinate of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendwidth" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the width of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendtitleposition" type="xs:string" default="left" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The position of the title: left, right, center. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendtitle" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The title of the legend.  If not null, appears at the top of
            the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendhl" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The onmouseover highlight for legend elements. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendheight" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If legend is 'manual', this sets the height of the legend. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legenddatapath" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The location of the data to be used in the legend.  If unspecified,
            the numerical values of the piechart will be used. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendborderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of the legend border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendborder" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of the legend border, if any. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legendbg" type="lzx:color" default="#CCCCCC" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Background color of the legend, if any. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="legend" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether or not there's a legend associated with this data.
            Values: top, bottom, left, right,
            manualtop, manualbottom, manualleft, manualright. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labeltextsize" type="xs:string" default="10" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Size of a label's text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labeltextcolor" type="lzx:color" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of a label's text. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelcolor" type="lzx:color" default="#EEEEEE" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the label. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelborderwidth" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Width of a label's border.  (Set 0 for none.)</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="labelborder" type="xs:string" default="#000000" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of a label's border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="label" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 label of the dataseries </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fillbelow" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to fill beneath the line, and if so, which color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="fbopacity" type="xs:string" default=".2" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The opacity of the filled area below the line. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="explode" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether the pieces should move away from the center on mouseover. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="enabled" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable the dataseries </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawbgborder" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw an outline around the background circle's
            circumference, and if so, what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="drawbg" type="lzx:color" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw the background circle, and if so, what color. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataseriesleafs" type="xs:string" default="$once{[]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
            cache a leaf nodes of the dataseries </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataresource" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Bar resource, if any. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataopacity" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Opacity of the bar, line or pie piece. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataenabled" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Is this series of data enabled? </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datacolumnsmap" type="xs:string" default="$once{new Object()}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keyword private
            cache the a hashtable of datacolumn </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="datacolor" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Color of the line, bar or pie piece. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="borderwidth" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The width of each piece's border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordercolor" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color of each piece's border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgborderwidth" type="lzx:number" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Thickness of the background circle's circumference outline. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="baselabels" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether to draw labels at the bases of bars, and
            what data to use.  No labels are drawn if not specified. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="baselabelangle" type="lzx:number" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Angle of baselabels.  (Determines rotation of tick labels
            at the bases of bars.  Not compatible with DHTML.) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="animationinit" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Whether a bar has animation.  Currently only works
            for bars, but may eventually be worked into other
            chart types. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="inspector" type="lzx:inspector" >
</xs:element>
  <xs:complexType name="inspector" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:window">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basewindow" type="lzx:basewindow" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The basewindow class defines methods, attributes that are used by window
      subclasses.</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basewindow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="ydoffset" type="xs:string" default="this.getMouse( 'y' )" >
</xs:attribute>
      <xs:attribute name="xdoffset" type="xs:string" default="this.getMouse( 'x' )" >
</xs:attribute>
      <xs:attribute name="state" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The state of the window: 1=selected (frontmost) window,
              2=not-selected window, 3=dragging, 4=disabled, 5=resizing.
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="starty" type="xs:string" default="$once{this.y}" >
</xs:attribute>
      <xs:attribute name="startx" type="xs:string" default="$once{this.x}" >
</xs:attribute>
      <xs:attribute name="minwidth" type="xs:string" default="60" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Minimum width for the window.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minheight" type="xs:string" default="50" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Minimum height for the window.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="haswindowfocus" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True if the window is frontmost. Set this
              attribute to bring the window to the fore of its sibling
              windows, and bring window focus.
              @keywords defaultsetter </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="allowdrag" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Attribute handles whether window can be dragged or not </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videothumbnail" type="lzx:videothumbnail" >
</xs:element>
  <xs:complexType name="videothumbnail" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="url" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="http" >
</xs:attribute>
      <xs:attribute name="thumbnailtime" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="border" type="xs:string" default="1" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="simpleinputtext" type="lzx:simpleinputtext" >
</xs:element>
  <xs:complexType name="simpleinputtext" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="textOpacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text opacity. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="text" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text for input. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="focusborderOpacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The opacity for the border on focus. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="blurborderOpacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The opacity for the border on blur. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bgOpacity" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The opacity for the input background. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="ulink" type="lzx:ulink" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A class for URL links.
    
    This differs from the use of the XHTML &amp;lt;a&amp;gt; attribute, e.g in '&amp;lt;text&amp;gt;&amp;lt;a href="http://openlaszlo.org"&amp;gt;OpenLaszlo.org&amp;lt;/a&amp;gt;lt;/text&amp;gt;', in these ways:
    - There is a hover effect.  (This defaults to underline.)
    - There is a hover color.  (This defaults to blue.)
    - The link content and target can be databound. 
    
    &lt;example executable="false"&gt;
      &amp;lt;ulink href="http://openlaszlo.org"&amp;gt;OpenLaszlo.org&amp;lt;/ulink&amp;gt;
    &lt;/example&gt;
    
    See ulink-test.lzx for additional examples. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="ulink" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="text" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The text of the link. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="target" type="xs:string" default="_new" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Where the target opens.  See lz.Browser.loadURL for
    a list of values. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="href" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The URL target. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hoverTags" type="xs:string" default="u" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A list of tags that are applied to the link when
    it is hovered.  This is either a list of tag names, e.g. "u"
    or "u b", or the HTML itself, e.g. "&amp;lt;u&amp;gt;". </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="hoverColor" type="lzx:color" default="blue" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color when the link is hovered. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="color" type="lzx:color" default="blue" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The color when the link is &lt;em&gt;not&lt;/em&gt; being hovered. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="state" type="lzx:state" >
<xs:annotation>
<xs:documentation xml:lang="en">
  A description of an instance hierarchy that can be applied and removed at runtime.
JavaScript: lz.state 

A state is an object that holds its children and attributes for creation or application at a later time when the state's apply method is called. In addition to representing visual state by adding and removing children from a view, states are often used to control constraints which are applied and removed at different times during the run of an application.

For the most part, the declarative style used in OpenLaszlo applications represents an initial state for the application. All modification to application state can be made using the script API's, but it is often convenient to declaratively describe a bit of application state which may be selectively applied or removed at runtime. The &lt;state&gt; tag is provided for this purpose.

Everything within a &lt;state&gt; tag acts as if it were written inside the parent when the state is applied. States can contain attributes, methods, and other nodes.

When a state is removed, any children or constraints created when the state was applied are then removed, but attributes that were set by the application of the state are not restored. 

 </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="state" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="pooling" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">

        If true, the state will merely hide any views it has created when it is removed (not applied), instead of destroying them. 
         </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="applied" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
        Whether or not the state is applied. setAttribute('applied', true) will apply the state. setAttribute('applied', false) will remove the state.
         </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="attribute" type="lzx:attribute" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Sets an attribute of the object that contains it. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="attribute" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="value" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
  The initial value of the attribute. The type of this value is specified by the value of the type attribute; if that attribute is not present, it's the type of this attribute in this element's tag. The attribute is given this value when the element is created. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="string" >
</xs:attribute>
      <xs:attribute name="style" type="xs:string" default="string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The CSS property name that can be used to set the value of this attribute under the control of a &lt;stylesheet&gt; (See Chapter 19. Cascading Style Sheets ). style can be any valid CSS property name, and need not be the same as the attribute name; for example you could use the standard CSS property name background-color as the style of the bgcolor attribute. When an attribute has a style property, the value property acts as the default value for the attribute: in the absence of any applicable CSS rule specifying the corresponding property, the attribute will be given the default value. In the case of dynamic CSS, the attribute will revert to the default value if CSS was applied and is removed. (See Dynamic CSS .) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="setter" type="xs:string" default="string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Delegate the event to a method on changes through setAttribute('...',$value) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="required" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 True if this is a required attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="name" type="lzx:token" use="required" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name of the attribute. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="allocation" type="xs:string" default="instance|class" >
<xs:annotation>
<xs:documentation xml:lang="en">
 One of:
class
    The attribute will be an attribute of the class; to refer to it, you say lz.classname.attributename . 
instance
    Each instance will have an attribute with the specified properties ( name , type , value , etc.). 

You can set allocation to class to get static attributes. Static properties are attached to the class itself, for example lz.classname . </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="streamscrubber" type="lzx:streamscrubber" >
</xs:element>
  <xs:complexType name="streamscrubber" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="totaltime" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 read only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="time" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 read only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="stream" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the stream to control </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrubbing" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 true when user has the mouse down and is scrubbing the stream </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="progress" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 read only </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="min" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 min 'x' value, defaults to zero (typically the left side of parent) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="max" type="lzx:number" default="$once{parent.width-this.width}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 max 'x' value, defaults to the right side of the parent </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="stringvalidator" type="lzx:stringvalidator" >
</xs:element>
  <xs:complexType name="stringvalidator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevalidator">
      <xs:attribute name="minLength" type="lzx:number" default="0" >
</xs:attribute>
      <xs:attribute name="minErrorstring" type="xs:string" default="this string is shorter than the minimum allowed length." >
</xs:attribute>
      <xs:attribute name="maxLength" type="lzx:number" default="255" >
</xs:attribute>
      <xs:attribute name="maxErrorstring" type="xs:string" default="this string is longer than the maximum allowed length." >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="LzDebugWindow" type="lzx:LzDebugWindow" >
<xs:annotation>
<xs:documentation xml:lang="en">
 
    The Laszlo debugger window. An instance will be automatically
    instantiated when the application is compiled in debug mode
    (requested by either using the
    &lt;code&gt;canvas&lt;/code&gt; &lt;code&gt;debug&lt;/code&gt; attribute or by loading the
    application using the &lt;code&gt;?debug=true&lt;/code&gt; option).  

    @keywords private_constructor
</xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="LzDebugWindow" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="title" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="smallInputAreaHeight" type="xs:string" default="29" >
</xs:attribute>
      <xs:attribute name="savedYPos" type="xs:string" default="10" >
</xs:attribute>
      <xs:attribute name="savedXPos" type="xs:string" default="10" >
</xs:attribute>
      <xs:attribute name="savedWidth" type="xs:string" default="340" >
</xs:attribute>
      <xs:attribute name="savedInputAreaHeight" type="xs:string" default="53" >
</xs:attribute>
      <xs:attribute name="savedHeight" type="xs:string" default="125" >
</xs:attribute>
      <xs:attribute name="resizable" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="persist" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="minimized" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="lineheight" type="xs:string" default="13" >
</xs:attribute>
      <xs:attribute name="lastpart" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="lastobj" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="keep_width_on_canvas" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="keep_height_on_canvas" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="isLoaded" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="evalloader" type="xs:string" default="null" >
</xs:attribute>
      <xs:attribute name="default_width" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="default_height" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="debuggerBorderWidth" type="xs:string" default="5" >
</xs:attribute>
      <xs:attribute name="consoleRemote" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="commandhistory_ptr" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="commandhistory" type="xs:string" default="[]" >
</xs:attribute>
      <xs:attribute name="closeable" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="clientBridge" type="xs:string" >
</xs:attribute>
      <xs:attribute name="autoscroll" type="xs:string" default="true" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="layout" type="lzx:layout" >
<xs:annotation>
<xs:documentation xml:lang="en">

    layout.lzx
   
    @copyright Copyright 2001-2010 Laszlo Systems, Inc.  All Rights Reserved.
               Use is subject to license terms.
   
    @topic LFC
    @subtopic Controllers
    @affects lzlayout
    @access public
  </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="layout" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="vip" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @access private
 * Just used to effect a type cast of immediateparent to LzView 
 * TODO [max 2010-07] add LzView type back when possible
 </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="updateDelegate" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A delegate used to update the layout.
      @type LzDelegate
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="subviews" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">

     Array of the views this layout controls. Used by subclasses of
     &lt;code&gt;layout&lt;/code&gt; to implement their arrangement algorithm by
     adjusting the appropriate attribute of each view.
    
     @type [LzView]
     @access public
   </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="locked" type="xs:string" default="2" >
<xs:annotation>
<xs:documentation xml:lang="en">

     Set to true if layout is locked from updates.
    
     @devnote locked is set to 2 in the prototype of the layout. This
     is a special signal that the layout is locked temporarily until
     it resolves its references
    
     @type Boolean
   </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="valueregion" type="lzx:valueregion" >
<xs:annotation>
<xs:documentation xml:lang="en">

        Represents a region of values in the chart
        @access public
        </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="valueregion" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:drawview">
      <xs:attribute name="tipEnabled" type="lzx:boolean" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable the value region's tooltip </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="tip" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Tip label that appear when the mouse is over the value region</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="regionEnabled" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 enable the rendering of the value region in the chart </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="label" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 label of the value region, it is shown next to the region </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="data2" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Maximum value for the Value region</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="data1" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Minimum value for the Value region</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="axis" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 the associated axis to the Region can be"x" or "y" </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="grid" type="lzx:grid" >
</xs:element>
  <xs:complexType name="grid" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basegrid">
      <xs:attribute name="showvscroll" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If false, the grid will never show a vertical scrollbar,
            even if the rows are wider than the grid.</xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="showhscroll" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If false, the grid will never show a horizontal scrollbar,
              even if the rows are wider than the grid.</xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="goldstyle" type="lzx:goldstyle" >
</xs:element>
  <xs:complexType name="goldstyle" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:style">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="treeselector" type="lzx:treeselector" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Selection manager used by tree. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="treeselector" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:selectionmanager">
      <xs:attribute name="multiselect" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If multiselect is true, multiple selection is enabled.  When the
              shift key is down, a range of items is selected.  When the control
              key is down, any item may be added to the selection. Default is
              false. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_dbg_lztextscroller" type="lzx:_dbg_lztextscroller" >
</xs:element>
  <xs:complexType name="_dbg_lztextscroller" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="visiblelines" type="xs:string" default="4" >
</xs:attribute>
      <xs:attribute name="thumbheight" type="xs:string" default="24" >
</xs:attribute>
      <xs:attribute name="textlines" type="xs:string" default="[]" >
</xs:attribute>
      <xs:attribute name="lineptr" type="xs:string" default="0" >
</xs:attribute>
      <xs:attribute name="autoscroll" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="arrowbuttonheight" type="xs:string" default="12" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basetabs" type="lzx:basetabs" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The base tabs object. This is the outermost containing component
          within which there are a basetabsbar and the basetabscontent. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basetabs" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basecomponent">
      <xs:attribute name="tabclass" type="xs:string" default="basetab" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Class to instantiate tab items for basetabsbar. Can be
              overridden by basetabpane.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_top" type="lzx:number" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The top inset for content appearing within a basetabpane. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_right" type="lzx:number" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The right inset for content appearing within a basetabpane. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_left" type="lzx:number" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The left inset for content appearing within a basetabpane. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="inset_bottom" type="lzx:number" default="8" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The bottom inset for content appearing within a basetabpane. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="contentclass" type="xs:string" default="basetabscontent" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Class to instantiate to contain basetabpanes.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="content" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is a reference to basetab's content area. This is where all
              basetabpanes in tabs are placed.
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordersize" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the border surrounding a basetabpane. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="barclass" type="xs:string" default="basetabsbar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Class to instantiate to contain tab items.
              @keywords final </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bar" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This is a reference to its basetabsbar. 
              @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="resource" type="lzx:resource" >
<xs:annotation>
<xs:documentation xml:lang="en">
A tag that defines a media object that can be associated with a view. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="resource" mixed="true">
  <xs:group ref="lzx:topLevelElements" />
      <xs:attribute name="src" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The path of a file that contains the source for this object. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="offsety" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The y offset of a bitmap resource used for a custom cursor. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="offsetx" type="lzx:number" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The x offset of a bitmap resource used for a custom cursor. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="name" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The name of a variable that will be set to this object when the application is started. If this element is directly within a canvas or library element, the global variable and the canvas property with this name will be set to this object. If this element is within another object, that object's property with this name will be set to this object.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:complexType>
<xs:element name="datatip" type="lzx:datatip" >
<xs:annotation>
<xs:documentation xml:lang="en">

     tooltip is a tool tip to be use be the chart elements such as the plot area
     @access public
      </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="datatip" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:label">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="list" type="lzx:list" >
<xs:annotation>
<xs:documentation xml:lang="en">
 A list containing listitems and providing selection capabilities. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="list" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baselist">
      <xs:attribute name="tracking" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Toggles the mousedown tracking. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="spacing" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The number of pixels that items should be spaced from one another. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="shownitems" type="xs:string" default="-1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The number of items that are displayed. This value will ignored if
              this view attempts to draw past the canvas boundary. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollbarclassname" type="xs:string" default="vscrollbar" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The name of the class to instantiate as our scrollbar.
              @keywords public </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="scrollable" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousetrackoutright" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event not used - declared to remove debugger warnings </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="onmousetrackoutleft" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 event not used - declared to remove debugger warnings </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="minheight" type="lzx:number" default="24" >
<xs:annotation>
<xs:documentation xml:lang="en">
 minumum height of the list </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="bordersize" type="xs:string" default="1" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size in pixels for this list. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border_top" type="xs:string" default="${this.bordersize}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the top border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border_right" type="xs:string" default="${this.bordersize}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the right border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border_left" type="xs:string" default="${this.bordersize}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the left border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="border_bottom" type="xs:string" default="${this.bordersize}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The size of the bottom border. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoscrollbar" type="xs:string" default="true" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, a scrollbar will show up automatically when there are
              more items than shownitems. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videoview" type="lzx:videoview" >
</xs:element>
  <xs:complexType name="videoview" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="url" type="xs:string" default="" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The url of the video, may be a relative URL, 
            for example: "http://localhost/myvideo.flv", 
            or simply "myvideo.flv".

            When type="rtmp", the url is always relative the rtmpconnection.
            (Use only when you are not explicitly declaring the mediastream.)
    </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="type" type="xs:string" default="http" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Protocol "rtmp" or "http". </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="stream" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The mediastream object.  A mediastream will be automatically generated if one is not specified at init time. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="starttime" type="lzx:number" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Show the frame from this time (in seconds) whenever the url 
          is set for video playback.
          Use -1 to show no frame (which will leave the image as it
          was when switching videos) </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="playvolume" type="xs:string" default="1.0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The volume for video playback, a float from 0 to 1. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="mic" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The microphone object. 
            @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="debug" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, Debug.write extra stuff (this may go away). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cam" type="xs:string" default="null" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The camera object. 
            @keywords readonly </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="buffertime" type="xs:string" default="0" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, video will start playing as soon as url is set. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autoplay" type="xs:string" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 If true, video will start playing as soon as url is set. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="timevalidator" type="lzx:timevalidator" >
<xs:annotation>
<xs:documentation xml:lang="en">
 timevalidator class </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="timevalidator" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basevalidator">
      <xs:attribute name="separator" type="xs:string" default=":" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Separator must be the same as specified in "format" attribute
              it's needed to prevent input with different separator </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="invalidformatErrorstring" type="xs:string" default="Please input the time in a valid format" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The five attributes above are five different message errors </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="invalidSeparatorErrorstring" type="xs:string" default="Please enter a valid separator" >
</xs:attribute>
      <xs:attribute name="invalidSecondsErrorstring" type="xs:string" default="Please enter seconds between 0 and 59" >
</xs:attribute>
      <xs:attribute name="invalidMinutesErrorstring" type="xs:string" default="Please enter minutes between 0 and 59" >
</xs:attribute>
      <xs:attribute name="invalidHourErrorstring" type="xs:string" default="Please enter hour between 0 and 23" >
</xs:attribute>
      <xs:attribute name="incongruentSeparatorErrorstring" type="xs:string" default="Warning! Two different separators are defined in format and separator attribute" >
<xs:annotation>
<xs:documentation xml:lang="en">
 Warning message when the two attribute "format" and "separator" have different separator's char </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="format" type="xs:string" default="hh:mi:ss" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The time format attribute. Default: hh:mi:ss
              hh = hour
              mi = minutes
              ss = seconds 
              The separator must be the same ss specified in "separator" attribute </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="floatinglist" type="lzx:floatinglist" >
</xs:element>
  <xs:complexType name="floatinglist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basefloatinglist">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="_dbg_horiz_scrollbar" type="lzx:_dbg_horiz_scrollbar" >
</xs:element>
  <xs:complexType name="_dbg_horiz_scrollbar" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="thumbwidth" type="xs:string" default="24" >
</xs:attribute>
      <xs:attribute name="autoscroll" type="xs:string" default="true" >
</xs:attribute>
      <xs:attribute name="arrowbuttonwidth" type="xs:string" default="12" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="xmlrpc" type="lzx:xmlrpc" >
</xs:element>
  <xs:complexType name="xmlrpc" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:rpc">
      <xs:attribute name="service" type="xs:string" default="$once{null}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 (Required) XML-RPC service URL. The URL must be http. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="treenode" type="lzx:treenode" >
</xs:element>
  <xs:complexType name="treenode" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:baseopttreenode">
      <xs:attribute name="mousein" type="xs:string" default="false" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="fisheye_item" type="lzx:fisheye_item" >
</xs:element>
  <xs:complexType name="fisheye_item" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="tooltip" type="xs:string" default="${this.text}" >
</xs:attribute>
      <xs:attribute name="text" type="xs:string" >
</xs:attribute>
      <xs:attribute name="start_size" type="xs:string" default="${parent.start_size}" >
</xs:attribute>
      <xs:attribute name="old_y" type="xs:string" default="$once{canvas.getMouse('y')}" >
</xs:attribute>
      <xs:attribute name="old_x" type="xs:string" default="$once{canvas.getMouse('x')}" >
</xs:attribute>
      <xs:attribute name="myTooltipManager" type="xs:string" default="$once{parent.tooltipmanager}" >
</xs:attribute>
      <xs:attribute name="icon" type="xs:string" >
</xs:attribute>
      <xs:attribute name="halo_size" type="xs:string" default="${parent.halo_size}" >
</xs:attribute>
      <xs:attribute name="expanded_size" type="xs:string" default="${parent.expanded_size}" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="videotogglebutton" type="lzx:videotogglebutton" >
</xs:element>
  <xs:complexType name="videotogglebutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="tracking" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="over" type="xs:string" default="false" >
</xs:attribute>
      <xs:attribute name="icon" type="xs:string" default="" >
</xs:attribute>
      <xs:attribute name="frameTable" type="xs:string" default="$once{             [1, 2, 1, 2, 3, 3, 3, 3]}" >
<xs:annotation>
<xs:documentation xml:lang="en">
 This look-up table maps a state value to a frame index. 
              Currently 2^3=8 states: 
              over (2^0=1), tracking (2^1=2) and engaged (2^2=4). </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="engaged" type="xs:string" default="false" >
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="dataset" type="lzx:dataset" >
<xs:annotation>
<xs:documentation xml:lang="en">
An in-memory xml-style data hierarchy. </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="dataset" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:node">
      <xs:attribute name="type" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	When set to "http" or "soap", the dataset interprets it's src attribute as a URL to be loaded at runtime. If the "src" attribute is set to a URL (e.g., starts with "http:") then the type attribute implicitly becomes "http".  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="trimwhitespace" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	When true, the server will trim whitespace in the XML data (defaults to false).  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="timeout" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The numer of milliseconds to wait before the request times out, and an ontimeout event is sent. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="src" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The source for requests made by this dataset. The value can be a pathname or an absolute or relative URL. If the value is a URL (starts with "http:"), the dataset will be configured to load its data at runtime. Otherwise, the data is included inline into the application at compile time.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="sel" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Selection state of this node, used by dataselectionmanager </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="secureport" type="lzx:number" default="443" >
<xs:annotation>
<xs:documentation xml:lang="en">
	TCP port number to use for secure (HTTPS) requests </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="request" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, the datset will make a request upon initialization </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="rawdata" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Holds raw data response string from data source </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="querytype" type="xs:string" default="GET" >
<xs:annotation>
<xs:documentation xml:lang="en">
HTTP request method. Value must be one of "GET" or "POST". </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="querystring" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	A string to be appended to the request that the dataset makes.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proxyurl" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The URL of the proxy server, for proxied requests </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="proxied" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
Sets whether or not the dataset makes its request directly to the target server or via the server proxy. Inherits value from canvas.proxied flag.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="postbody" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Used to send a string as the entire body of a POST request. For a POST request, setting postbody to a non-null string value will send that string as the complete body of the POST request. In this case any other query parameters that have been set via setQueryParam dataset will be ignored. The behavior of a GET request with a non-null postbody is not defined. Note, the swf8 runtime is forced to XML-quote the postbody, due to limitations in the Flash 8 player API. This restriction is not present in later swf runtimes, or in the DHTML runtime.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="parentNode" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	The parent of this node </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="params" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	An lz.Param object which holds query key-value pairs. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="ownerDocument" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	The owner document for this node. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="nsprefix" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	When true, the server will preserve namespace prefixes on data node names and attribute names  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="nodeType" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	The type of this node one of lz.DataElement.DOCUMENT_NODE, lz.DataElement.ELEMENT_NODE or lz.DataElement.TEXT_NODE </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="nodeName" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	The name of this node. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="multirequest" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	Create a new data request object for each request. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="getresponseheaders" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	When true, the proxy server (if making a proxied request) will encode and send the HTTP response headers along with the data (defaults to false). Due to a lack of a native API to get this information, SOLO SWF applications will always return an empty set. When making a proxied request, getresponseheaders must be true in order for the response headers to be retrieved via the getResponseHeader or getAllResponseHeaders methods.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="dataprovider" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	Holds a pointer to the DataProvider which handles data load requests for this dataset. Default value is canvas.defaultdataprovider  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="credentialled" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
When true, the withCredentials property on the XHR object will be set to true, allowing credentialled cross-origin resource sharing (CORS) requests. If withCredentials is not set for a CORS request using credentials, the browser will not set any cookies sent by the server. See http://www.w3.org/TR/cors/#access-control-allow-credentials-respons and http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-withcredentials-attribute for more information.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="clientcacheable" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 	When true, data responses can be cached by the client (browser). When false, a unique valued argument will be added to the request string in the format '__lzbc__=1204685840777' to defeat the browser's cache.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="childNodes" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
	An array of children of this node </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="cacheable" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
	When true, the server will attempt to cache response (defaults to false). There are security concerns when this field is true. When this field is true, you will usually want the getresponseheaders field to be false. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="autorequest" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
	If true, changes to src or querystring attributes cause doRequest() to be called automatically. If false, doRequest() must be called manually when src or querystring attributes change.  </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="attributes" type="xs:string" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The dictionary of attributes for this node. </xs:documentation>
</xs:annotation>
</xs:attribute>
      <xs:attribute name="acceptencodings" type="lzx:boolean" >
<xs:annotation>
<xs:documentation xml:lang="en">
	When true, the server will accept encoded responses for this request. Encoded responses require more work for the LPS (encoding the response) and client (decoding the response) in trade for lower network bandwidth usage.  </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="minibutton" type="lzx:minibutton" >
</xs:element>
  <xs:complexType name="minibutton" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:stylishbutton">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="plainfloatinglist" type="lzx:plainfloatinglist" >
</xs:element>
  <xs:complexType name="plainfloatinglist" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basefloatinglist">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="basechartbacking" type="lzx:basechartbacking" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The base chart background class for rectangular charts.
        (That is, not used in piechart.)  (Of beta quality.) </xs:documentation>
</xs:annotation>
</xs:element>
  <xs:complexType name="basechartbacking" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:view">
      <xs:attribute name="drawready" type="lzx:boolean" default="false" >
<xs:annotation>
<xs:documentation xml:lang="en">
 The drawview responsible for drawing horizontal ticks. </xs:documentation>
</xs:annotation>
</xs:attribute>
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:element name="lwzendatepicker" type="lzx:lwzendatepicker" >
</xs:element>
  <xs:complexType name="lwzendatepicker" mixed="true">
  <xs:complexContent>
  <xs:extension base="lzx:basedatepicker">
  </xs:extension>
  </xs:complexContent>
  </xs:complexType>
<xs:group name="topLevelElements">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any />
</xs:choice>
</xs:sequence>
</xs:group>
</xs:schema>
