动态模型的标记语言和XML、HTML等标记语言是基本类似的,模型可以用XML来表示。比如下面的模型代码。
<?xml version="1.0" encoding="utf-8"?> <Shell name="HelloWorld" descriptors="xworker.swt.widgets.Shell" text="Hello World" width="640" height="480"> <FillLayout name="FillLayout"></FillLayout> <Browser name="browser" url="http://www.x-meta.org"></Browser> </Shell>
标记语言是比较容易读懂的,比如上面的代码中第一个节点是一个Shell,有name、descriptors、text、width和height等属性,有FillLayout和Browser两个子节点等等,其中Browser是浏览器,浏览器中URL地址是http://www.x-meta.org。
在动态模型编程里把每一个节点以及其子节点当作一个模型,比如上面的代码中有<Shell .../>、<FillLayout.../>和<Browser .../>三个节点,它们是三个独立的模型,其中<Shell .../>模型包含了<FillLayout .../>和<Browser .../>两个子模型。
与XML和HTML等标记语言不太一样的是,动态模型标记语言中的标签的定义也是模型,理论上可以放到任何地方(使用XML编码时有顺序限制)。比如下面的模型代码。
<Test> <thing name="Shell"> <attribute name="name"/> <attribute name="text"/> <attribute name="width"/> <attribute name="height"/> </thing> <Shell descriptors="Test/@Shell" name="HelloWorld" text="Hello World" width="640" height="480"/> </Test>
比如在上面的模型代码中,节点<Shell .../>的标签Shell的定义是<thing name="Shell" .../>,它们可以写在同一个文档里。
在动态模型标记语言里,标签的定义称为描述者,在动态模型标记语言中描述者起到结构定义和行为定义的作用,因此描述者有时候也可以称为类,比如在上面的代码中<thing name="Shell" .../>可以称为是<Shell name="HelloWorld" .../>的类。
Copyright © 2007-2017 XWorker.org 版权所有