You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

421 lines
15 KiB

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="jsml" targetNamespace="http://cutesoft.net/jsml" elementFormDefault="qualified" xmlns="http://cutesoft.net/jsml" xmlns:mstns="http://cutesoft.net/jsml" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="jsml-var">
<xs:restriction base="xs:string">
<xs:pattern value="[^=]?[0-9a-zA-Z_${}]*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="jsml-var-list">
<xs:restriction base="xs:string">
<xs:pattern value="[^=]?[0-9a-zA-Z_${},]*" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="visibility">
<xs:restriction base="xs:string">
<xs:enumeration value="visible" />
<xs:enumeration value="hidden" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="jsml-dock">
<xs:restriction base="xs:string">
<xs:enumeration value="top" />
<xs:enumeration value="left" />
<xs:enumeration value="right" />
<xs:enumeration value="bottom" />
<xs:enumeration value="fill" />
<xs:enumeration value="over" />
<xs:enumeration value="flow" />
<xs:enumeration value="none" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="content-flow">
<xs:restriction base="xs:string">
<xs:enumeration value="left" />
<xs:enumeration value="right" />
<xs:enumeration value="bottomleft" />
<xs:enumeration value="bottomright" />
<xs:enumeration value="uptoleft" />
<xs:enumeration value="downtoleft" />
<xs:enumeration value="uptoright" />
<xs:enumeration value="downtoright" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="flow-clear">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="both" />
<xs:enumeration value="prev" />
<xs:enumeration value="next" />
<xs:enumeration value="follow" />
<xs:enumeration value="newline" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="jsml-overflow">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="visible" />
<xs:enumeration value="scroll" />
<xs:enumeration value="default" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="zoom-mode">
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="both" />
<xs:enumeration value="in" />
<xs:enumeration value="out" />
<xs:pattern value="(none)|(both)|(in)|(out)|([0-9%\.]+)" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="vertical-align">
<xs:restriction base="xs:string">
<xs:enumeration value="top" />
<xs:enumeration value="middle" />
<xs:enumeration value="bottom" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="horizontal-align">
<xs:restriction base="xs:string">
<xs:enumeration value="left" />
<xs:enumeration value="center" />
<xs:enumeration value="right" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="text-mode">
<xs:restriction base="xs:string">
<xs:enumeration value="singleline" />
<xs:enumeration value="multipleline" />
<xs:enumeration value="password" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="jsml-xmldata" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any />
</xs:choice>
<xs:attribute name="rawhtml" type="xs:boolean" />
</xs:complexType>
<xs:complexType name="jsml-constructor">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="arguments" type="jsml-var-list" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="jsml-initialize">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="jsml-method">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="name" type="jsml-var" use="required" />
<xs:attribute name="arguments" type="jsml-var-list" />
<xs:attribute name="overrideas" type="jsml-var" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="jsml-attach">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="name" type="jsml-var-list" use="required" />
<xs:attribute name="arguments" type="jsml-var-list" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="jsml-propgetset">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="arguments" type="jsml-var-list" />
<xs:attribute name="overrideas" type="jsml-var" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="list-item">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="value" type="xs:string" />
<xs:attribute name="text" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="jsml-jsml">
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="jsml-append" type="xs:boolean" />
<xs:attribute name="jsml-class" type="jsml-var" />
<xs:attribute name="jsml-base" type="jsml-var" />
<xs:attribute name="jsml-local" type="jsml-var" />
<xs:attribute name="jsml-member" type="jsml-var" />
<xs:attribute name="id" type="xs:string" />
<xs:attribute name="var" type="jsml-var" />
<xs:attribute name="vars" type="jsml-var-list" />
<xs:anyAttribute />
</xs:complexType>
<xs:complexType name="jsml-control">
<xs:complexContent>
<xs:extension base="jsml-jsml">
<xs:attribute name="parent" type="xs:string" />
<xs:attribute name="top" type="xs:string" />
<xs:attribute name="left" type="xs:string" />
<xs:attribute name="right" type="xs:string" />
<xs:attribute name="bottom" type="xs:string" />
<xs:attribute name="width" type="xs:string" />
<xs:attribute name="height" type="xs:string" />
<xs:attribute name="min_width" type="xs:string" />
<xs:attribute name="min_height" type="xs:string" />
<xs:attribute name="max_width" type="xs:string" />
<xs:attribute name="max_height" type="xs:string" />
<xs:attribute name="unselectable" type="xs:boolean" />
<xs:attribute name="visible" type="xs:boolean" />
<xs:attribute name="visibility" type="visibility" />
<xs:attribute name="disabled" type="xs:boolean" />
<xs:attribute name="dock" type="jsml-dock" />
<xs:attribute name="flow_clear" type="flow-clear"/>
<xs:attribute name="margin" type="xs:string" />
<xs:attribute name="border_width" type="xs:string" />
<xs:attribute name="border_style" type="xs:string" />
<xs:attribute name="border_color" type="xs:string" />
<xs:attribute name="back_color" type="xs:string" />
<xs:attribute name="text_color" type="xs:string" />
<xs:attribute name="background" type="xs:string" />
<xs:attribute name="text" type="xs:string" />
<xs:attribute name="tooltip" type="xs:string" />
<xs:attribute name="font" type="xs:string" />
<xs:attribute name="font_size" type="xs:string" />
<xs:attribute name="cursor" type="xs:string" />
<xs:attribute name="opacity" type="xs:string" />
<xs:attribute name="css_class" type="xs:string" />
<xs:attribute name="css_text" type="xs:string" />
<xs:attribute name="overflow" type="jsml-overflow"/>
<xs:attribute name="overflow_x" type="jsml-overflow"/>
<xs:attribute name="overflow_y" type="jsml-overflow"/>
<xs:attribute name="horizontal_align" type="horizontal-align" />
<xs:attribute name="vertical_align" type="vertical-align" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-simplecontrol">
<xs:complexContent>
<xs:extension base="jsml-control">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="class-member-group" />
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-complexcontrol">
<xs:complexContent>
<xs:extension base="jsml-control">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="class-member-group" />
<xs:group ref="sub-element-group" />
</xs:choice>
<xs:attribute name="padding" type="xs:string" />
<!--<xs:attribute name="zoom" type="zoom-mode" />-->
<xs:attribute name="content_flow" type="content-flow" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-panel">
<xs:complexContent>
<xs:extension base="jsml-complexcontrol">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-groupbox">
<xs:complexContent>
<xs:extension base="jsml-panel">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--<xs:complexType name="jsml-grid">
<xs:complexContent>
<xs:extension base="jsml-complexcontrol">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="row" type="jsml-row" />
</xs:choice>
<xs:attribute name="cell_border_width" type="xs:string" />
<xs:attribute name="cell_border_style" type="xs:string" />
<xs:attribute name="cell_border_color" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-row">
<xs:complexContent>
<xs:extension base="jsml-complexcontrol">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="cell" type="jsml-cell" />
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-cell">
<xs:complexContent>
<xs:extension base="jsml-complexcontrol">
</xs:extension>
</xs:complexContent>
</xs:complexType>-->
<xs:complexType name="jsml-jsmlelement">
<xs:complexContent>
<xs:extension base="jsml-simplecontrol">
<xs:attribute name="zoom" type="zoom-mode" />
<xs:attribute name="padding" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-htmlcontrol">
<xs:complexContent>
<xs:extension base="jsml-jsmlelement">
<xs:attribute name="html" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-image">
<xs:complexContent>
<xs:extension base="jsml-jsmlelement">
<xs:attribute name="src" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-label">
<xs:complexContent>
<xs:extension base="jsml-jsmlelement">
<xs:attribute name="text_align" type="horizontal-align" />
<xs:attribute name="word_wrap" type="xs:boolean" />
<xs:attribute name="font_size" type="xs:string" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-textbox">
<xs:complexContent>
<xs:extension base="jsml-simplecontrol">
<xs:attribute name="text_mode" type="text-mode" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-checkbox">
<xs:complexContent>
<xs:extension base="jsml-jsmlelement">
<xs:attribute name="checked" type="xs:boolean" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="jsml-dropdown">
<xs:complexContent>
<xs:extension base="jsml-simplecontrol">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="listitem" type="list-item"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:group name="class-member-group">
<xs:choice>
<xs:element name="jsml-ref">
<xs:complexType>
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="constructor" type="jsml-constructor" />
<xs:element name="initialize" type="jsml-initialize" />
<xs:element name="method" type="jsml-method" />
<xs:element name="attach" type="jsml-attach" />
<xs:element name="xmldata" type="jsml-xmldata" />
<xs:element name="property">
<xs:complexType>
<xs:sequence>
<xs:element name="get" type="jsml-propgetset" minOccurs="1" maxOccurs="1" />
<xs:element name="set" type="jsml-propgetset" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="name" type="jsml-var" use="required" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
<xs:group name="sub-element-group">
<xs:choice>
<xs:element name="htmlcontrol" type="jsml-htmlcontrol" />
<xs:element name="button" type="jsml-simplecontrol" />
<xs:element name="image" type="jsml-image" />
<xs:element name="label" type="jsml-label" />
<xs:element name="textbox" type="jsml-textbox" />
<xs:element name="dropdown" type="jsml-dropdown" />
<xs:element name="checkbox" type="jsml-checkbox" />
<xs:element name="panel" type="jsml-panel" />
<xs:element name="groupbox" type="jsml-groupbox" />
<!--<xs:element name="grid" type="jsml-grid" />-->
<xs:element name="object">
<xs:complexType>
<xs:complexContent>
<xs:extension base="jsml-complexcontrol">
<xs:attribute name="jsml-base" type="jsml-var" use="required" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="jsml-comment">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any processContents="skip" />
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="jsml-block">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="sub-element-group" />
</xs:choice>
<xs:attribute name="jsml-enable" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
<xs:element name="jsml">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="sub-element-group" />
<xs:element name="execute">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="include">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="src"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="jsml-def">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="class-member-group" />
<xs:group ref="sub-element-group" />
</xs:choice>
<xs:attribute name="jsml-enable" type="xs:boolean" />
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>