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