你应该如何构建你的xml文件?

Xai*_*oft 8 xml

在创建新的xml文件时,如何正确地构建文件或以最佳方式.通过结构,在这种情况下可能不是最好的词,我的意思是如何在制作元素或元素属性之间做出选择.例如,如果我创建一个包含人员列表的Person.xml文件,那么最好是这样做:

<Person>
    <FirstName>John</FirstName>
    <LastName>Doe</LastName>
    <Age>23</Age>
</Person>
Run Code Online (Sandbox Code Playgroud)

或者做这样的事情还是做得更好?

<Person FirstName="John" LastName="Doe" Age="23"></Person>
Run Code Online (Sandbox Code Playgroud)

Geo*_*ker 5

XML文件应该(不是开始圣战)的结构如下:

如果它是数据,或者可以改变的东西,那么它应该是这样的:

<Person>
  <FirstName>John</FirstName>
  <LastName>Smith</LastName>
  <Age>23</Age>
</Person>
Run Code Online (Sandbox Code Playgroud)

如果它是该东西的属性,Person那么它应该是这样的:

<Person Type="Human">
  <FirstName>John</FirstName>
  <LastName>Smith</LastName>
  <Age>23</Age>
</Person>
Run Code Online (Sandbox Code Playgroud)

这种做法有多种原因,其中最重要的原因包括每当您更改检索Person数据的方法时,都可以轻松修复XSLT转换.

这确实是重要的部分:属性定义有关数据的信息(人员类型),而数据是用来填补这些漏洞的东西.如果您决定如何更改填充这些漏洞的方式,那么当您希望稍后转换XML时,如果您已将它们设置为"属性"而非"数据",则会变得更加困难.

  • 在这个例子中"属性"和"数据"之间的区别是不清楚的(至少可以说).另外,我看不出有任何理由的属性使事情"更强硬"的使用XSLT工作时:使用@前缀那么难吗? (2认同)

The*_*urf 5

真的没关系,但我决定的方式是:如果某些东西可以被认为是一个实体(在这个例子中,Person,我将它作为一个元素.如果它是修改实体的东西(或实体的属性) ),我把它作为一个属性.

例:

<Person FirstName="John" LastName="Doe" Age="23">
    <Clothing wet="No">
        <Shirt colour="Red" />
    </Clothing>
</Person>
Run Code Online (Sandbox Code Playgroud)