Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 66 additions & 34 deletions 3.2/itop_design.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -2227,7 +2227,7 @@
<xs:complexType>
<xs:all>
<xs:element name="code" type="xs:string" minOccurs="0" />
<xs:element name="rank" type="xs:string" minOccurs="0" />
<xs:element name="rank" type="xs:float" minOccurs="0" />
<xs:element name="style" type="styleType" minOccurs="0" />
</xs:all>
<xs:attribute name="id" type="xs:string" use="required" />
Expand Down Expand Up @@ -2255,7 +2255,7 @@
<xs:element name="metavalue">
<xs:complexType>
<xs:all>
<xs:element name="values">
<xs:element name="values" minOccurs="0">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="value">
Expand Down Expand Up @@ -2368,7 +2368,7 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="min_up" type="xs:string" minOccurs="0" />
<xs:element name="min_up" type="xs:unsignedByte" minOccurs="0" />
<xs:element name="min_up_type" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
Expand Down Expand Up @@ -2492,7 +2492,7 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
-->
-->
<!-- ########################### /AttributeApplicationLanguage ########################### -->

<!-- ########################### AttributeSubItem ########################### -->
Expand Down Expand Up @@ -2650,7 +2650,7 @@
<xs:attributeGroup ref="alteredNode" />
</xs:complexType>

<xs:simpleType name="MenuEnableAction">
<xs:simpleType name="MenuEnableActionEnumeration">
<xs:restriction base="xs:string">
<xs:enumeration value="UR_ACTION_READ" />
<xs:enumeration value="UR_ACTION_MODIFY" />
Expand All @@ -2661,23 +2661,30 @@
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="MenuEnablePermission">
<xs:simpleType name="MenuEnablePermissionEnumeration">
<xs:restriction base="xs:string">
<xs:enumeration value="UR_ALLOWED_NO" />
<xs:enumeration value="UR_ALLOWED_YES" />
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="zeroOrOneEnumeration">
<xs:restriction base="xs:unsignedByte">
<xs:enumeration value="0" />
<xs:enumeration value="1" />
</xs:restriction>
</xs:simpleType>

<!-- ########################### MenuGroup ########################### -->
<xs:complexType name="MenuGroup">
<xs:complexContent>
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
<xs:element name="style" minOccurs="0">
<xs:complexType>
Expand All @@ -2698,7 +2705,7 @@
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="parent" type="xs:string" minOccurs="0" />
<xs:element name="definition_file" type="xs:string" minOccurs="0" />
<xs:element name="definition" minOccurs="0">
Expand Down Expand Up @@ -2732,8 +2739,8 @@
</xs:complexType>
</xs:element>
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
</xs:all>
</xs:extension>
Expand All @@ -2747,12 +2754,12 @@
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="parent" type="xs:string" minOccurs="0" />
<xs:element name="class" type="xs:string" minOccurs="0" />
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
</xs:all>
</xs:extension>
Expand All @@ -2766,12 +2773,12 @@
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="parent" type="xs:string" minOccurs="0" />
<xs:element name="class" type="xs:string" minOccurs="0" />
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
</xs:all>
</xs:extension>
Expand All @@ -2785,12 +2792,12 @@
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="parent" type="xs:string" minOccurs="0" />
<xs:element name="template_file" type="xs:string" minOccurs="0" />
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
</xs:all>
</xs:extension>
Expand All @@ -2804,15 +2811,30 @@
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="auto_reload" type="xs:string" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="auto_reload" minOccurs="0" default="none">
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="none" />
<xs:enumeration value="standard" />
<xs:enumeration value="fast" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:nonNegativeInteger" />
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:element>
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="parent" type="xs:string" minOccurs="0" />
<xs:element name="oql" type="xs:string" minOccurs="0" />
<xs:element name="do_search" type="xs:string" minOccurs="0" />
<xs:element name="search_form_open" type="xs:string" minOccurs="0" />
<xs:element name="do_search" type="zeroOrOneEnumeration" minOccurs="0" />
Copy link
Contributor

@Hipska Hipska Jul 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Combodo always uses 1 or an empty value for do_search, I did as well.

Should we allow empty values or do we want to restrict this even against use case of Combodo itself?

They only check if it contains 1 or not: https://github.com/Combodo/iTop/blob/8580cb70a41c0b7be36a6b40a993bc3bcf5276fa/setup/compiler.class.inc.php#L2856

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The configuration that combodo does is sometimes very strange. It does not look like it is following some design guides. Sometimes they use true or false, or not present, sometimes they use 1 or anything else, sometimes it is completely different again. I also found occurences of elements that allow a bunch of entries that do all the same - even with some kind of typos in it.
I also thought about this specific element. My idea was to "raise awareness" if there is someting like "true" or "false" (because it would be obvious). but as true would be wrong, I would like to have this as an error in the validation.
At the moment I do not see any other usecase as having the element to be 1 or simply not present, not even empty.
And as having 0 or empty or not present or anything else (not 1) does nothing, it will not hurt.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the reply, will need to update my data models then 😉

<xs:element name="search_form_open" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
</xs:all>
</xs:extension>
Expand All @@ -2826,12 +2848,22 @@
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="parent" type="xs:string" minOccurs="0" />
<xs:element name="url" type="xs:string" minOccurs="0" />
<xs:element name="url" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
URL to the page within the module.
Prefix by a $$ to specify an absolute URL.
Prefix by a $ to specify an URL relative to the iTop root URL.
No prefix: relative to the module directory
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="in_new_window" type="xs:boolean" minOccurs="0" default="false" />
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
</xs:all>
</xs:extension>
Expand All @@ -2845,11 +2877,11 @@
<xs:extension base="MenuBase">
<xs:all>
<xs:element name="rank" type="xs:decimal" minOccurs="0" />
<xs:element name="enable_admin_only" type="xs:byte" minOccurs="0" />
<xs:element name="enable_admin_only" type="zeroOrOneEnumeration" minOccurs="0" />
<xs:element name="parent" type="xs:string" minOccurs="0" />
<xs:element name="enable_class" type="xs:string" minOccurs="0" />
<xs:element name="enable_action" type="MenuEnableAction" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermission" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_action" type="MenuEnableActionEnumeration" minOccurs="0" />
<xs:element name="enable_permission" type="MenuEnablePermissionEnumeration" minOccurs="0" default="UR_ALLOWED_YES" />
<xs:element name="enable_stimulus" type="xs:string" minOccurs="0" />
</xs:all>
</xs:extension>
Expand Down
Loading