Files
iTop/setup/itop_design.xsd
bdalsass fb1ceebaa4 N°3190 - Edit n:n LinkedSetIndirect in object details using a tagset-like widget
- Add generic set block ui component
- Add model link set (direct and indirect) attribute (display style)
- Add model link set direct allowed values
- Create link set viewer block UI (BlockLinksSetDisplayAsProperty)
- Add set block ui factory for linkset
- Add object factory and create new endpoint in object controller (with data binder)
- Add link set model, link set repository and link set data transformer services
2023-01-24 10:03:10 +01:00

553 lines
18 KiB
XML

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:element name="itop_design">
<xsd:complexType>
<xsd:sequence>
<!-- Classes [0, N] -->
<xsd:element name="classes" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="class" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="parent" type="xsd:string" minOccurs="0"/>
<xsd:element name="properties">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
<xsd:element name="is_link" type="xsd:string" minOccurs="0"/>
<xsd:element name="category" type="xsd:string"/>
<xsd:element name="abstract" type="xsd:string"/>
<xsd:element name="key_type" type="xsd:string"/>
<xsd:element name="db_table" type="xsd:string"/>
<xsd:element name="db_key_field" type="xsd:string"/>
<xsd:element name="db_final_class_field" type="xsd:string"/>
<xsd:element name="naming">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="format" type="xsd:string"/>
<xsd:element name="attributes" type="ListOfAttributes"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="display_template" type="xsd:string"/>
<xsd:element name="icon" type="xsd:string"/>
<xsd:element name="reconciliation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="attributes" type="ListOfAttributes"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="order" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="columns">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="column">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ascending" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="order" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="fields">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="field" type="Attribute" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="lifecycle" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="attribute" type="xsd:string"/>
<xsd:element name="stimuli">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="stimulus" type="Stimulus" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="states">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="state" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="flags">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="attribute" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="mandatory" type="xsd:string" minOccurs="0"/>
<xsd:element name="must_prompt" type="xsd:string" minOccurs="0"/>
<xsd:element name="must_change" type="xsd:string" minOccurs="0"/>
<xsd:element name="hidden" type="xsd:string" minOccurs="0"/>
<xsd:element name="read_only" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="transitions">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="transition" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="stimulus" type="xsd:string"/>
<xsd:element name="target" type="xsd:string"/>
<xsd:element name="actions">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="action" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="verb" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="methods">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="method" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
<xsd:element name="static" type="xsd:string"/>
<xsd:element name="access" type="xsd:string"/>
<xsd:element name="type" type="xsd:string"/>
<xsd:element name="code" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="presentation">
<xsd:complexType>
<xsd:all>
<xsd:element name="details" type="ItemList" minOccurs="0"/>
<xsd:element name="search" type="ItemList" minOccurs="0"/>
<xsd:element name="list" type="ItemList" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="_delta" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Menus [0, N] -->
<xsd:element name="menus" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="menu" type="Menu" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- ====================================== -->
<!-- Class: Atttributes -->
<!-- ====================================== -->
<xsd:complexType name="ListOfAttributes">
<xsd:sequence>
<xsd:element name="attribute" minOccurs="0" maxOccurs="unbounded">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Attribute">
<xsd:sequence>
<xsd:element name="filter" type="xsd:string" minOccurs="0"/>
<xsd:element name="values" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="dependencies" type="ListOfAttributes" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="AttributeSql">
<xsd:complexContent>
<xsd:extension base="Attribute">
<xsd:sequence>
<xsd:element name="sql" type="xsd:string"/>
<xsd:element name="default_value" type="xsd:string"/>
<xsd:element name="is_null_allowed" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeBlob">
<xsd:complexContent>
<xsd:extension base="Attribute">
<xsd:sequence>
<xsd:element name="is_null_allowed" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeScalar">
<xsd:complexContent>
<xsd:extension base="AttributeSql">
<xsd:sequence>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeInteger">
<xsd:complexContent>
<xsd:extension base="AttributeScalar">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeString">
<xsd:complexContent>
<xsd:extension base="AttributeScalar">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeDate">
<xsd:complexContent>
<xsd:extension base="AttributeString">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeDateTime">
<xsd:complexContent>
<xsd:extension base="AttributeString">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeDeadline">
<xsd:complexContent>
<xsd:extension base="AttributeDateTime">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeText">
<xsd:complexContent>
<xsd:extension base="AttributeString">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeCaseLog">
<xsd:complexContent>
<xsd:extension base="AttributeText">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeURL">
<xsd:complexContent>
<xsd:extension base="AttributeString">
<xsd:sequence>
<xsd:element name="target" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeIPAddress">
<xsd:complexContent>
<xsd:extension base="AttributeString">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeEnum">
<xsd:complexContent>
<xsd:extension base="AttributeString">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeExternalKey">
<xsd:complexContent>
<xsd:extension base="Attribute">
<xsd:sequence>
<xsd:element name="sql" type="xsd:string"/>
<xsd:element name="target_class" type="xsd:string"/>
<xsd:element name="is_null_allowed" type="xsd:string"/>
<xsd:element name="filter" type="xsd:string" minOccurs="0"/>
<xsd:element name="on_target_delete" type="xsd:string"/>
<xsd:element name="jointype" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeHierarchicalKey">
<xsd:complexContent>
<xsd:extension base="Attribute">
<xsd:sequence>
<xsd:element name="sql" type="xsd:string"/>
<xsd:element name="is_null_allowed" type="xsd:string"/>
<xsd:element name="on_target_delete" type="xsd:string"/>
<xsd:element name="filter" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeExternalField">
<xsd:complexContent>
<xsd:extension base="Attribute">
<xsd:sequence>
<xsd:element name="extkey_attcode" type="xsd:string"/>
<xsd:element name="target_attcode" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeEmailAddress">
<xsd:complexContent>
<xsd:extension base="AttributeString">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeLinkedSet">
<xsd:complexContent>
<xsd:extension base="Attribute">
<xsd:sequence>
<xsd:element name="linked_class" type="xsd:string"/>
<xsd:element name="ext_key_to_me" type="xsd:string"/>
<xsd:element name="count_min" type="xsd:string"/>
<xsd:element name="count_max" type="xsd:string"/>
<xsd:element name="display_style" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="AttributeLinkedSetIndirect">
<xsd:complexContent>
<xsd:extension base="AttributeLinkedSet">
<xsd:sequence>
<xsd:element name="ext_key_to_remote" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="ext_key_to_remote" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ====================================== -->
<!-- Class: ZList (presentation) -->
<!-- ====================================== -->
<xsd:complexType name="ItemList">
<xsd:sequence>
<xsd:element name="items" type="Items" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Items">
<xsd:sequence>
<xsd:element name="item" maxOccurs="unbounded">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="items" type="Items" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ====================================== -->
<!-- Class: Stimulus -->
<!-- ====================================== -->
<xsd:complexType name="Stimulus">
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="StimulusUserAction">
<xsd:complexContent>
<xsd:extension base="Stimulus">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="StimulusInternal">
<xsd:complexContent>
<xsd:extension base="Stimulus">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ====================================== -->
<!-- Types for the menus -->
<!-- ====================================== -->
<xsd:complexType name="Menu">
<xsd:sequence>
<xsd:element name="rank" type="MenuProperty"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="MenuGroup">
<xsd:complexContent>
<xsd:extension base="Menu">
<xsd:sequence>
<xsd:element name="enable_class" type="MenuProperty" minOccurs="0"/>
<xsd:element name="enable_action" type="MenuProperty" minOccurs="0"/>
<xsd:element name="enable_permission" type="MenuProperty" minOccurs="0"/>
<xsd:element name="enable_stimulus" type="MenuProperty" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" fixed="MenuGroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="MenuNode">
<xsd:complexContent>
<xsd:extension base="Menu">
<xsd:sequence>
<xsd:element name="parent" type="MenuProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TemplateMenuNode">
<xsd:complexContent>
<xsd:extension base="MenuNode">
<xsd:sequence>
<xsd:element name="template_file" type="MenuProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="NewObjectMenuNode">
<xsd:complexContent>
<xsd:extension base="MenuNode">
<xsd:sequence>
<xsd:element name="class" type="MenuProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SearchMenuNode">
<xsd:complexContent>
<xsd:extension base="MenuNode">
<xsd:sequence>
<xsd:element name="class" type="MenuProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="OQLMenuNode">
<xsd:complexContent>
<xsd:extension base="MenuNode">
<xsd:sequence>
<xsd:element name="oql" type="MenuProperty"/>
<xsd:element name="do_search" type="MenuProperty"/>
<xsd:element name="auto_reload" type="MenuProperty" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="WebPageMenuNode">
<xsd:complexContent>
<xsd:extension base="MenuNode">
<xsd:sequence>
<xsd:element name="url" type="MenuProperty"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="MenuProperty">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:simpleType name="MenuType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MenuGroup"/>
<xsd:enumeration value="TemplateMenuNode"/>
<xsd:enumeration value="NewObjectMenuNode"/>
<xsd:enumeration value="SearchMenuNode"/>
<xsd:enumeration value="OQLMenuNode"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>