在HTML文档中存储html表单内容的最佳实践

时间:2009-11-03 17:25:33

标签: xml storage html-form

我有两个由用户填写的网络表单。它们包含不同类型的字段:文本框,单选按钮,复选框(单个或组)。用户提交的所有信息都存储在数据库的XML字段中。

我的问题是: XML文件中的字符串有哪些良好做法。

现在我喜欢这个:

文字框,例如:txtName我放入<Name>John</Name>代码。

广播框,例如:rdbSex我放入<Sex>Male</Sex>

复选框组我放入一个XML标记,并为每个复选框项指定truefalse,例如:

<favoriteMovies>
    <StarWars>True</StarWars>
    <KillBill>False</KillBill>
    ....
</favoriteMovies>

电影存储在一个表中的数据库中,每个表都有一个ID。我应该还将它存储在XML文件中吗?像这样:

<favoriteMovies>
    <StarWars id="4">True</StarWars>
    <KillBill id="6">False</KillBill>
    ....
</favoriteMovies>

或者可能只存储选定的选项(在这种情况下为withoud KillBill):

<favoriteMovies>
    <StarWars id="4 />
    ....
</favoriteMovies>

同样的问题是下拉控件。它们从数据库中的一个表填充,每个项都有一个id。我应该只存储用户选择的ID,或两者:id和选择的名称。所以最好这样存储:

<Address>
    <City>2</City>
</Address>

或者像这样:

<Address>
    <City id="2" />
</Address>

或者像这样

<Address>
    <City>New York</City>
</Address>

文档由用户提交,但可以重新打开和编辑,并且应该重新填充网站上的所有控件。所以它接缝我需要城市的ID,在DropDown控件中选择适当的值,但它使XML文档的可读性降低。

是否有任何建议或某些文档指定了在XML文档中存储Web表单元素的规则?

3 个答案:

答案 0 :(得分:1)

我认为你应该采取务实的方式:使用原子值的属性可以导致更小的XML文档。我也更喜欢这个:

<favoriteMovies><!-- all this are favorite, so "true" isnt required -->
    <Movie id="4" name="StarWars (just if required)" />
    ....
</favoriteMovies>

通过这个

<favoriteMovies>
    <StarWars id="4">True</StarWars>
    <KillBill id="6">False</KillBill>
    ....
</favoriteMovies>

注意我删除了KillBill,因为它被标记为“不喜欢”。

结论:保持XML文档较小,不会出现问题。

答案 1 :(得分:1)

我会这样:

1)将您想要放入XML的内容视为对象

2)找出最适合人类对象的属性,将其置于标记

之间

3)装饰对象的每个其他属性,将它们作为标记属性

我将重新修改鲁本斯的例子:

<favoriteMovies>
    <Movie id="4">StarWars (just if required)</Movie>
    ....
</favoriteMovies>

我移动了这个名字,因为这是最能描述电影的内容(对于人类而言),因为如果你有特殊字符,你将能够<![CDATA[ ]]>他们......

希望这有帮助

答案 2 :(得分:0)

我不会将XML文档存储在数据库中(特别是因为它们似乎是传输类型对象)。为什么不在数据库中以关系方式存储数据。表单适用于捕获数据。 XML适用于传输数据,数据库表适用于存储数据。由于您已经将电影存储在数据库中,因此应该很容易将其余数据显式存储在数据库中,而不是通过XML隐式存储。