我想将网站的配置基于XML文件。我已经开始编写以下文件,但我想知道几件事:
<config>
<core>
<database
rdbms = "MySQL"
name = "db_name"
host = "127.0.0.1"
login = "root"
password = ""
charset = "UTF-8"
engine = "MyISAM"
/>
<debug
log = "../log.txt"
models = "true"
views = "true"
controller = "true"
/>
</core>
<application name="app_name">
<paths>
<path name="CONTENT_DIR" src="../Content" />
<path name="LOG_FILE" src="../log.txt" />
</paths>
<!-- etc -->
</application>
</config>
<host value="127.0.0.1" />
,并将它们放在数据库标记的内容中,但由于只有一个主机,它似乎不合逻辑。然而,数据库是一个标签,因为可以有几个数据库。这有意义吗?是否会有更清晰/更自然的方式来做到这一点?我想我有更多问题,但是他们离开了我的脑海,所以如果他们回来我会编辑我的问题:P
感谢您的帮助。
答案 0 :(得分:0)
首先,您使用“tag”一词来表示“元素”。元素通常有两个标记(开始和结束标记),除非它是空的,在这种情况下它可能只有一个空元素标记。
当你“自我关闭标签”时,你应该说“空元素”。空元素是作为自闭标签还是作为没有内容的起始标签/结束标签对而无关紧要。
同样,属性的对齐纯粹是装饰性的,你不应该将它与文件的逻辑设计混淆。作为配置文件格式的设计者,您不会影响实际配置文件的作者如何选择进行布局;这不是你的问题,你不应该在乎。
属性与元素的决定是一个老板栗。当您使用XML进行文档标记时,存在真正的区别(文档的文本内容在元素内容中,元数据在属性中),但是当您使用XML作为结构化数据时,没有这样的区别,因此完全取决于您。在为Saxon设计配置文件格式时,我做了与您相同的决定,并广泛使用了属性,但使用子元素也可以正常工作,也许更常见。事实上,有一个论据说,对于数据,你可以用元素做所有事情,所以根本不要使用属性。