Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对XML中的元素和属性感到困惑_Xml - Fatal编程技术网

对XML中的元素和属性感到困惑

对XML中的元素和属性感到困惑,xml,Xml,我最近开始学习XML,对元素和属性的使用感到非常困惑。我读了很多文章和一些经验法则,但仍然无法清楚地知道什么时候该用什么。例如,一个好的经验法则是使用单值数据作为属性,使用多值数据作为元素。另一种方法是将数据表示为元素,将元数据表示为属性。一些文章说描述了其他几种方法或规则。我心中有几个问题,如果有人能帮助我理解,我将不胜感激 如果数据是单值的呢?我应该将其设置为属性还是元素。例如,一个人的婚姻状况在其数据的同时是单值的。在这种情况下,属性和元素有什么区别 例如,出生日期也是一个单值数据,但许多

我最近开始学习XML,对元素和属性的使用感到非常困惑。我读了很多文章和一些经验法则,但仍然无法清楚地知道什么时候该用什么。例如,一个好的经验法则是使用单值数据作为属性,使用多值数据作为元素。另一种方法是将数据表示为元素,将元数据表示为属性。一些文章说描述了其他几种方法或规则。我心中有几个问题,如果有人能帮助我理解,我将不胜感激

  • 如果数据是单值的呢?我应该将其设置为属性还是元素。例如,一个人的婚姻状况在其数据的同时是单值的。在这种情况下,属性和元素有什么区别

  • 例如,出生日期也是一个单值数据,但许多论坛建议为日、月和年创建单独的元素,一些论坛建议将出生日期元素和日、年和月作为其属性。两种方法的区别是什么?两种方法如何提供帮助

  • 什么对搜索操作更有用?如何使用?如果我想以这样一种方式设计它,它对搜索更有用、更高效,我该怎么做呢。例如,如果我想搜索1980年出生的人或诸如此类的人,那么出生日期的元素或属性对搜索操作有什么影响


  • 如果您是程序员,您将更好地理解这一点
    虽然属性和元素可以互换。
    每当我创建一个XML结构时,我都会尝试将其作为某种编程语言的一个类,比如说c#
    因此,对于所有
    字段
    我生成属性,对于所有
    属性
    我生成元素 因此,一个具有以下结构的类

    class SomeClass
    
        {
        int a;
        int b{get; set;}
        }
    
    将由我更改为

    <xml>
    <object a="some value"><b>"some value"</b></object>
    </xml>
    
    
    “一些价值”
    
    关于如何使用两者,我认为有很多不同的解释,我最近一直在试图弄清楚它们。以下是我个人的观点:

    • 属性包含在标记信息中,您可以使用这些信息使标记“更丰富”,我认为我必须引用一个特定的html标记来应用它某种样式或行为,因此,例如,我会查找带有属性lang=“ita”的所有标记,并向它们粘贴一个“translate this”函数,或者我可以查找带有属性sex的所有标记=“女性”并将其呈现为粉红色…关键是读者可以判断文本是否为英语,或者Sarah是男性还是女性,但您希望“让解析器也知道这一点”,并且可以通过属性而不是内部值更好地xpath标记(选择标记)

    • 其他一切都是元素


    首先,你需要明白,没有正确的答案。在许多情况下,答案差别不大。当一个选择差别不大时,就不值得花太多时间在决定上,因为出错的惩罚不高

    如果您采用以下策略,您不会犯太大的错误:

    (a) 在面向文档的XML中,将用户可见的运行文本放在元素中,并在属性中放置普通用户看不到的注释(“元数据”)


    (b) 在面向数据的XML中,除了ID属性之外,一切都使用元素。

    不,我不是……这会有什么不同吗?