-1

我想将网站的配置基于 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

谢谢你的帮助。

4

1 回答 1

0

首先,您使用“标签”一词来表示“元素”。一个元素通常有两个标签(一个开始标签和一个结束标签),除非它是空的,在这种情况下它可能有一个空元素标签。

当你“自闭标签”时,你应该说“空元素”。空元素是写成自闭合标签还是写成没有内容的开始标签/结束标签对是完全不相关的。

同样,属性对齐纯粹是装饰性的,您不应将其与文件的逻辑设计混淆。作为配置文件格式的设计者,您无法影响实际配置文件的作者如何选择布局;这不是你的问题,你不应该关心。

属性与元素的决定是老生常谈。当您将 XML 用于文档标记时,存在真正的区别(文档的文本内容在元素内容中,元数据在属性中),但是当您将 XML 用于结构化数据时,没有这样的区别,因此完全取决于您。在为 Saxon 设计配置文件格式时,我做出了与您相同的决定,大量使用属性,但使用子元素也可以,而且可能更常见。事实上,有一个论点说对于数据,你可以用元素做任何事情,所以根本不要使用属性。

于 2013-09-16T22:49:35.023 回答