椭圆定义教程

介绍

在其核心,椭圆形的语言是一个简单的表示真值与系统组件相关联。例子将“文件的版本是3.5.1”或“注册表键的值是10”或“用户弗雷德是一个部门组”的成员。本文将解释如何将这些简单的真值可以表示为一个椭圆的定义。的完整描述语言将不会提供,而是快速的介绍,应该让用户了解椭圆的定义的结构。

回到顶部

Hello World示例

一个教授当学习一门编程语言的例子总是“Hello World”。它本质上是一个非常简单的程序,编译和运行时,产生的文本“Hello World”在屏幕上。让我们看一个类似的例子为椭圆形通过编写自定义测试(假想的)Windows注册表键HKEY_LOCAL_MACHINE \ SOFTWARE \椭圆形\例子的值等于“Hello World”。

创建定义的第一步是创建实际的椭圆形测试,将定义我们想要的注册表键和值来检查。一旦创建了测试,一个定义在元数据写入包装测试。

注册表测试

一个测试在椭圆形语言是用来检查指定属性的值与给定对象有关。椭圆形的测试结构简单结合了对于一个给定的对象的引用(在这种情况下注册表键)和参考价值(也称为状态)我们想要检查。

每个测试给出一个ID来识别它。检查属性有助于确定对象之间的关系和状态。为我们的hello world示例中,我们将检查属性设置为“所有”。这意味着测试将是真的如果所有的注册表键值对系统满足匹配对象声明中找到的值。当然在我们的示例中只有一个注册表键应该匹配对象,我们将检查这个注册表键值等于“Hello World”。

< registry_test id = "椭圆形:教程:结核菌素:1”检查= "所有" > <对象object_ref = "椭圆形:教程:obj: 1 " / > <国家state_ref = "椭圆形:教程:ste: 1 " / > < / registry_test >
注册表对象

每个测试在椭圆形需要检查一个或多个对象。对象是实际系统上的“东西”的评价。例如:一个文件,一个用户,一个过程,一个注册表键,等等。这些对象系统的部分,我们正在测试。

指定注册表键在椭圆形的语言,创造了一个“registry_object”之一。这只是数据的xml表示,惟一地标识。在这种情况下,它由一个蜂巢,钥匙,和名称。为我们的hello world示例中,我们将创建以下对象:

< registry_object id = "椭圆形:教程:obj: 1 " > <蜂巢> HKEY_LOCAL_MACHINE < /蜂巢> <键>软件\椭圆形< /关键> <名称> < /名称> < / registry_object >例子

请注意,我们的注册表相关联的对象有一个id和这个id引用了我们的注册表测试。

注册状态

一旦我们已经定义了对象我们想看,下一步是表达,测试对象的状态被认为是真实的。为我们的hello world示例中,我们将创建一个registry_state实际上说“我们检查注册表确定的值为hello world”。

< registry_state id = "椭圆形:教程:ste: 1 " > <价值> Hello World < /值> < / registry_state >

再次,注意我们的注册状态相关联的一个id,这个id是我们的注册表引用的测试。

回到顶部

的定义

一个定义是椭圆形的心脏和灵魂的语言。这个定义应用程序在系统评价参考。一个定义的目的是将一个或多个测试使用逻辑运算符和或。此外,它将元数据在这些测试帮助详细用户发生了什么。

<定义id = "椭圆形:教程:def: 1 " > <元数据>…< /元数据> <标准>…< /标准> < / >定义

每一个定义都有一个id相关联的测试一样,对象和状态。这个id遵循相同的骨灰盒格式与其他ids的椭圆形:其次是一个独一无二的字符串(理想情况下反向dns形式),其次是“def”三个字母的代码,和结束与一个整数。

元数据

与每个定义的是一组相关联的元数据提供关于被检查和描述性文本的定义应该如何使用。唯一所需的元数据是一个标题和描述。如果需要可以添加额外的元数据。

<元数据> <标题> Hello World示例< /名称> <描述>这个定义是用来介绍写作椭圆形椭圆形语言对个人感兴趣的内容。< /描述> < /元数据>
的标准

它是一个椭圆的标准定义,概述了什么是被测试。标准包含所有个体与和或运营商测试和连接在一起。这允许个人写作定义表达语句如“测试文件存在,注册表键= 10”。当然我们的例子只看着一个注册表键的标准只会包含一个单独的测试。下面的例子显示了Hello World定义的标准将会写。

<标准> <标准test_ref = "椭圆形:教程:结核菌素:1”评论=“注册表键的值等于Hello World”/ > < /标准>

每个标准都包含个人的标准语句引用一个单独的测试。实际测试分开写,引用id被test_ref属性。在这种情况下,我们将考虑测试椭圆形:教程:结核菌素:1。与标准相关的评论有助于解释测试被引用将做什么。

回到顶部

完整的定义文件

现在我们所有的部分,我们可以将其组合在一起,形成一个椭圆形的定义文件。

< oval_definitions > <定义> <定义id = "椭圆形:教程:def: 1 " > <元数据> <标题> Hello World示例< /名称> <描述>这个定义是用来介绍写作椭圆形椭圆形语言对个人感兴趣的内容。< /描述> < /元数据> <标准> <标准test_ref =“椭圆形:教程:结核菌素:1”评论=“注册表键的值等于Hello World”/ > < /标准> < /定义> < /定义> <测试> < registry_test id =“椭圆形:教程:结核菌素:1”检查= "所有" > <对象object_ref = "椭圆形:教程:obj: 1 " / > <国家state_ref = "椭圆形:教程:ste: 1 " / > < / registry_test > < /测试> <对象> < registry_object id = "椭圆形:教程:obj: 1 " > <蜂巢> HKEY_LOCAL_MACHINE < /蜂巢> <键>软件\椭圆形< /关键> <名称>示例< /名称> < / registry_object > < /对象> <州> < registry_state id = "椭圆形:教程:ste: 1 " > <价值> Hello World < /值> < / registry_state > < /州> < / oval_definitions >
回到顶部

额外的信息

注意上面的椭圆定义文件不是技术上有效。它不包括一些更高级的功能,因为这些功能不因素结构或不同组件之间的关系。更多信息请阅读更完整的”编写一个椭圆的定义“文档或电子邮件我们oval@mitre.org

回到顶部

页面最后更新:2011年1月18日