XML数据模型引用 本文档是引用文档,用于iTop模块内部的datamodel.xxxx.xml文件中使用的XML格式。 XML数据模型文件可用于定义: - classes-使用安装程序或工具包“编译”时将生成实际的PHP类
- menus-插入到iTop页面左侧的应用菜单中
- profiles --管理对iTop对象的权利访问
- branding
iTop的2.1、2.2、2.3和2.4版本对XML结构进行了许多轻度更改,以简化iTop的自定义。 iTop始终支持较旧的格式(向后兼容)。本章介绍了新格式引入的修改的完整列表。[ :8082/bin/view/5/5.1/5.1.9/#changes_history]变更记录[/url]. 为了阐明引用数据模型,在iTop 2.1.0中做了一些更改。有关更多信息,请阅读迁移2.0.3至2.1.0注释 原则XML数据模型包含其他XML文件中进行的初始声明和声明的更改。 iTop编译器分两个步骤工作: - 加载已安装模块的XML数据模型文件。 XML被组合成一个单一的XML定义。对于图片而言,重要的是,从一个空的定义开始,iTop将一个一个地合并每个XML,
- 解释最终的组合定义。
下文描述的XML格式引用适用于组合定义。因此,XML可能不包含所有强制性节点,而仅包含标识变更路径所需的那些以及(重新)定义项目所需的那些。 默认情况下,给定XML的内容将合并到组合定义中。 更改节点内容您可以使用属性_delta定义更改。属性指定必须如何考虑给定节点,包括其子节点。 _delta可以采用以下值: _delta | 含义 | merge (default) | 如果此节点尚不存在,请创建它。然后检查其子节点中的增量。这与结构节点最相关 | must_exist | 确保此节点已经存在。然后检查其子节点中的增量。 | if_exists | 2.3.0中的新增功能-检查此节点是否已经存在。如果是这样,请检查其子节点中的增量。否则,请忽略此节点。它类似于must_exist,但是它跳过当前节点而不是停止整个流程。 | define | 这是此节点的第一个定义。不应在其子节点中找到任何标志。 | define_if_not_exists | 如果该节点尚不存在,则对其进行定义。否则忽略它。 | redefine | 该节点的内容必须替换为增量节点的内容。 | delete | 删除该节点。该节点不应有子节点(无内容) | force | 强制定义此节点(无论是否存在) |
节点由其标签名称和属性ID标识。如果未给出id,则将该节点标识为具有相同标签名称的找到的第一个节点。 当编译器遇到define/redefine时,它将认为子树是纯内容定义。结果,在该子树中找到的任何属性_delta或_rename_from将被忽略。 重命名节点另一个属性是_rename_from。使用它来指定该项目(例如类字段)实际上是从_rename_from重命名为id的现有项目。 XML的一般结构使用项目左侧的三角形箭头展开以折叠其定义。 [table=98%]
[tr][td]标签[/td][td]用法[/td][td]描述[/td][/tr]
[tr][td]<itop_design xmlns:xsi="2001/XMLSchema-instance" version="1.2">[/td][td]强制性的[/td][td]结构节点。由于iTop 2.4.0中轻度的更改,版本已增加到1.4[/td][/tr]
[tr][td]<classes>[/td][td]强制性的[/td][td]宣告班[/td][/tr]
[tr][td]<class id="name">[/td][td]零或更多[/td][td]上课声明[/td][/tr]
[tr][td]<parent>cmdbAbstractObject</parent>[/td][td]强制性的[/td][td]父类[/td][/tr]
[tr][td]<properties>[/td][td]强制性的[/td][td] [/td][/tr]
[tr][td]<is_link>1</is_link>[/td][td]可选的[/td][td]用于将其他类链接在一起的区分类。设置为1链接类。[/td][/tr]
[tr][td]<comment>[/td][td]强制性的[/td][td]在类声明之前,将PHP注释添加到编译文件中[/td][/tr]
[tr][td]<category>bizmodel,searchable,structure</category>[/td][td]可选的[/td][td]此类的用法。[/td][/tr]
[tr][td]<abstract>false</abstract>[/td][td]强制性的[/td][td]抽象类无法实例化。[/td][/tr]
[tr][td]<key_type>autoincrement</key_type>[/td][td]强制性的[/td][td]始终设置为“自动增量”[/td][/tr]
[tr][td]<db_table>name</db_table>[/td][td]强制性的[/td][td]用于此类的MySQL表的名称。此处给出的名称将自动在安装时提供的后缀之前。[/td][/tr]
[tr][td]<db_key_field>id</db_key_field>[/td][td]强制性的[/td][td]始终将标识符字段设置为“ id”就可以了[/td][/tr]
[tr][td]<db_final_class_field>finalclass</db_final_class_field>[/td][td]强制性的[/td][td]如果该类在分层类的顶部,则必须定义将使用哪个MySQL列来跟踪对象实例的实际类。将此设置为“ finalclass”就可以了。[/td][/tr]
[tr][td]<naming>[/td][td]可选的[/td][td]定义用于组成对象友好名称的属性。默认情况下,友好名称将呈现为给定属性的串联,并用空格分隔。您可以通过添加字典条目“ Class:<myClass >> Name”来指定任何其他格式。该格式以类似于prin的格式表达式给出(仅支持$ s,例如'%1 $ s of%2 $ s')。由于此类格式位于词典中,因此可以对其进行翻译,并且友好名称依赖于终端用户的语言。请注意,在iTop 2.0.3中,iTop随附的XML文件中存在标签<format>,但未使用它,这具有误导性。[/td][/tr]
[tr][td]<attributes>[/td][td]强制性的[/td][td]用于组成友好名称的属性列表。请注意,顺序很重要。[/td][/tr]
[tr][td]<attribute id="name">[/td][td]最后一个[/td][td] [/td][/tr]
[tr][td]<order>[/td][td]可选的[/td][td]定义类的默认排序顺序,如果省略,则按友好名称对类进行排序[/td][/tr]
[tr][td]<columns>[/td][td]强制性的[/td][td] [/td][/tr]
[tr][td]<column id="name" ascending="true|false">[/td][td]最后一个[/td][td]在此属性上升序或降序。属性的顺序很重要。[/td][/tr]
[tr][td]<display_template>[/td][td]可选的[/td][td] [/td][/tr]
[tr][td]<icon>[/td][td]可选的[/td][td]为您的班级指定一个图标[/td][/tr]
[tr][td]<reconciliation>[/td][td]强制性的[/td][td]定义数据导入的默认对帐方案。[/td][/tr]
[tr][td]<attributes>[/td][td]强制性的[/td][td]用于对帐的属性列表。[/td][/tr]
[tr][td]<attribute id="name">[/td][td]最后一个[/td][td] [/td][/tr]
[tr][td]<indexes>[/td][td]可选的[/td][td]定义表索引[/td][/tr]
[tr][td]<index id="name">[/td][td]零或更多[/td][td]显式强制使用声明的顺序使用所有指定的属性创建数据库索引。[/td][/tr]
[tr][td]<attributes>[/td][td]强制性的[/td][td]索引使用的属性列表。顺序很重要。[/td][/tr]
[tr][td]<attribute id="name">[/td][td]最后一个[/td][td] [/td][/tr]
[tr][td]<archive>[/td][td]可选的[/td][td]档案配置。[/td][/tr]
[tr][td]<enabled>true</enabled>[/td][td]强制性的[/td][td]仅适用于根类。设置为true以使此类及其所有后代均可归档(添加两个魔术属性:归档_flag和归档_date)。当任何归档已启用= true时尝试将其设置为false会在运行时导致父[/td][/tr]
[tr][td]<obsolescence>[/td][td]可选的[/td][td]废弃配置。一旦为类定义了废弃,就添加了两个魔术属性(废弃_flag和废弃_date),分层中的所有类都具有该标志(默认为“否”)。[/td][/tr]
[tr][td]<condition><![CDATA[status='closed' AND closed_date < DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH),'%Y-%m-%d 00:00:00')]]></condition>[/td][td]强制性的[/td][td]定义对象是否作废的OQL表达式。除非重新定义,否则子类将继承此条件。[/td][/tr]
[tr][td]<fields>[/td][td]强制性的[/td][td]属性声明(累加从父类继承的属性,如果有的话)[/td][/tr]
[tr][td]<field>[/td][td]最后一个[/td][td]属性的声明。请参阅部分中的各种类型的属性[ :8082/bin/view/5/5.1/5.1.9/#fields]领域[/url] [/td][/tr]
[tr][td]<lifecycle>[/td][td]可选的[/td][td]生命周期:状态和转换[/td][/tr]
[tr][td]<highlight_scale>[/td][td]可选的[/td][td]定义对象显示的突出显示代码列表(列表中的后台颜色和图标)[/td][/tr]
[tr][td]<item id="warning">[/td][td]最后一个[/td][td]新的高光代码的定义[/td][/tr]
[tr][td]<rank>1</rank>[/td][td]强制性的[/td][td]此突出显示代码的等级(或权重)[/td][/tr]
[tr][td]<color>HIGHLIGHT_WARNING</color>[/td][td]强制性的[/td][td]此代码的配色方案:HIGHLIGHT_NONE(透明),HIGHLIGHT_WARNING(橙色),HIGHLIGHT_CRITICAL(红色)或HIGHLIGHT_OK(绿色)[/td][/tr]
[tr][td]<icon>[/td][td]强制性的[/td][td]对象的图标在此状态下[/td][/tr]
[tr][td]<attribute>name</attribute>[/td][td]强制性的[/td][td]用于状态的属性(必须声明为AttributeEnum,可以从父类继承)[/td][/tr]
[tr][td]<stimuli>[/td][td]强制性的[/td][td]对象将敏感的事件列表[/td][/tr]
[tr][td]<stimulus>[/td][td]最后一个[/td][td]宣布刺激。在本节中查看各种类型的刺激[ :8082/bin/view/5/5.1/5.1.9/#stimuli]刺激物[/url] [/td][/tr]
[tr][td]<states>[/td][td]强制性的[/td][td]可能的状态。状态列表必须是为“状态”属性定义的值的子集。[/td][/tr]
[tr][td]<state id="name">[/td][td]最后一个[/td][td]状态的完整定义:名称,属性标志和转换为其他状态[/td][/tr]
[tr][td]<initial_state_path>[/td][td]可选的[/td][td]对象在创建时将经过的状态的有序列表[/td][/tr]
[tr][td]<state_ref>new</state_ref>[/td][td]强制性的[/td][td]一个状态[/td][/tr]
[tr][td]<inherit_flags_from>*another_state*</inherit_flags_from>[/td][td]可选的[/td][td]继承标记的状态名称。注意:must_变更和must_prompt标志永远不会被继承[/td][/tr]
[tr][td]<highlight>[/td][td]可选的[/td][td]突出显示此状态的定义[/td][/tr]
[tr][td]<code>name</code>[/td][td]强制性的[/td][td]突出显示代码[/td][/tr]
[tr][td]<flags>[/td][td]强制性的[/td][td]在此定义给定状态下如何在GUI中显示属性[/td][/tr]
[tr][td]<attribute id="name">[/td][td]最后一个[/td][td]GUI组合的标志组合[/td][/tr]
[tr][td]<hidden>[/td][td]可选的[/td][td]属性在此状态下处于隐藏状态[/td][/tr]
[tr][td]<read_only>[/td][td]可选的[/td][td]属性已显示,无法修改[/td][/tr]
[tr][td]<must_prompt>[/td][td]可选的[/td][td]对象进入状态时,GUI必须提示用户[/td][/tr]
[tr][td]<must_change>[/td][td]可选的[/td][td]当对象进入状态时,必须由用户更改属性。[/td][/tr]
[tr][td]<mandatory>[/td][td]可选的[/td][td]进入此状态时必须定义属性。这将覆盖属性的定义(属性“ is_null_allowed”)[/td][/tr]
[tr][td]<transitions>[/td][td]强制性的[/td][td]从此状态到另一状态的可能转换列表[/td][/tr]
[tr][td]<transition id="name">[/td][td]最后一个[/td][td]对于给定的刺激,定义目标状态和要执行的操作活动。如果省略标识符,将使用刺激的名称。[/td][/tr]
[tr][td]<stimulus>name</stimulus>[/td][td]强制性的[/td][td]事态触发此转换[/td][/tr]
[tr][td]<target>name</target>[/td][td]强制性的[/td][td]转换之后达到的状态[/td][/tr]
[tr][td]<flags>[/td][td]强制性的[/td][td]在此定义该转换的属性如何在GUI中显示[/td][/tr]
[tr][td]<attribute id="name">[/td][td]最后一个[/td][td]GUI组合的标志组合[/td][/tr]
[tr][td]<mandatory>[/td][td]可选的[/td][td]必须定义属性才能完成转换。这将覆盖属性的定义(标签“ is_null_allowed”)[/td][/tr]
[tr][td]<must_change>[/td][td]可选的[/td][td]用户必须更改属性才能完成转换[/td][/tr]
[tr][td]<must_prompt>[/td][td]可选的[/td][td]转换期间属性以编辑模式显示[/td][/tr]
[tr][td]<read_only>[/td][td]可选的[/td][td]属性已显示,但无法修改[/td][/tr]
[tr][td]<actions>[/td][td]强制性的[/td][td]操作活动的订购列表,以在转换期间执行[/td][/tr]
[tr][td]<action>[/td][td]最后一个[/td][td]单个功能[/td][/tr]
[tr][td]<verb>name</verb>[/td][td]强制性的[/td][td]将被调用的方法的名称(请参阅下文的标签“方法”)[/td][/tr]
[tr][td]<params>[/td][td]强制性的[/td][td]方法参数列表[/td][/tr]
[tr][td]<parameter xsi:type="string|int|float|reference">[/td][td]零或更多[/td][td]参数的价值[/td][/tr]
[tr][td]<methods>[/td][td]强制性的[/td][td]其他职能声明。职能将在该类内声明。这是重载DBObject或cmdbAbstractObject的某些功能的意思。小心使用。[/td][/tr]
[tr][td]<method id="name">[/td][td]零或更多[/td][td]A职能[/td][/tr]
[tr][td]<comment>[/td][td]可选的[/td][td]PHP注释。将类的声明放到生成的(编译的)PHP代码中。[/td][/tr]
[tr][td]<static>false</static>[/td][td]强制性的[/td][td]如果需要声明静态职能,则设置为true,否则设置为false。[/td][/tr]
[tr][td]<access>public</access>[/td][td]强制性的[/td][td]设置为公众,受保护或私有(请参阅PHP文档)[/td][/tr]
[tr][td]<type>Overload-DBObject</type>[/td][td]强制性的[/td][td]使用以下值之一:LifecycleAction,Overload-cmdbAbstractObject,Overload-iDisplay,Overload-DBObject,Overload-ExNihilo,自定义[/td][/tr]
[tr][td]<arguments>[/td][td]可选的[/td][td]声明生命周期操作活动的参数类型[/td][/tr]
[tr][td]<argument>current_stimulus_code</argument>[/td][td]零或更多[/td][td]参数的类型。使用以下值之一:attcode,class,current_stimulus_code,int,引用,字符串[/td][/tr]
[tr][td]<code>[/td][td]强制性的%5 |