在xml/xsd中表示逗号分隔的cData

在xml/xsd中表示逗号分隔的cData,xml,xsd,Xml,Xsd,我必须用xml表示逗号分隔的字符串。第一个字符串应与索引0相对应,第二个字符串应与索引1相对应,以此类推 以下是我打算做的 选择1 <Representation> <indexes>0,1,2</indexes> <values><![CDATA[x,y,z]]>,![CDATA[x1,y1,z1]]>,![CDATA[x2,y2,z2]]></values> </Representation>

我必须用xml表示逗号分隔的字符串。第一个字符串应与索引0相对应,第二个字符串应与索引1相对应,以此类推

以下是我打算做的

选择1

<Representation>
<indexes>0,1,2</indexes>
<values><![CDATA[x,y,z]]>,![CDATA[x1,y1,z1]]>,![CDATA[x2,y2,z2]]></values>
</Representation>

0,1,2
,![CDATA[x1,y1,z1]]>,![CDATA[x2,y2,z2]>
选择2

<Representation>
<index id="0">x,y,z</index>
<index id="1">x1,y1,z1</index>
<index id="2">x2,y2,z2</index>
</Representation>

x、 y,z
x1,y1,z1
x2,y2,z2

我更喜欢选项1,因为与选项2相比,我可以在4行中表示所有内容,这意味着假设要表示100个索引,选项1在两行中完成,而在选项2中,行数将增加。选项1是否是一种有效的表示形式?我不确定这一点。

两种XML设计的一个主要缺点是,它们无法分别标记似乎是重要数据项(x、y和z)的内容。XML的使用者通常不应该被强迫进一步解析XML解析之外的内容

请尝试以下方法:

<Representation>
  <group>
    <item>x</item>
    <item>y</item>
    <item>z</item>
  </index>
  <!-- ... -->
</Representation>

x
Y
Z
进一步说明:

  • 尝试选择合适的域名,而不是泛型名称
  • 仅仅标记位置的Id是多余的
  • 上的
    @分隔符
    属性可能对某些用途有用
  • 不需要CDATA,除非x、y和z要有标记 您特别不希望被解析为标记的字符-- 例如,如果您正在写一本关于XML的书,并且希望展示一个 XML示例

这两种XML设计的一个主要缺点是,它们无法分别标记看似重要的数据项(x、y和z)。XML的使用者通常不应该被强迫进一步解析XML解析之外的内容

请尝试以下方法:

<Representation>
  <group>
    <item>x</item>
    <item>y</item>
    <item>z</item>
  </index>
  <!-- ... -->
</Representation>

x
Y
Z
进一步说明:

  • 尝试选择合适的域名,而不是泛型名称
  • 仅仅标记位置的Id是多余的
  • 上的
    @分隔符
    属性可能对某些用途有用
  • 不需要CDATA,除非x、y和z要有标记 您特别不希望被解析为标记的字符-- 例如,如果您正在写一本关于XML的书,并且希望展示一个 XML示例

在XML模式中,您可以使用列表类型实现选项1,但每个字符串都需要用空格分隔。

在XML模式中,您可以使用列表类型实现选项1,但每个字符串都需要用空格分隔。

为此使用CDATA是错误的。使用CDATA的唯一原因是避免转义特殊字符(
&
为此使用CDATA是错误的。使用CDATA的唯一原因是避免转义特殊字符(<代码>和<代码> >代码> > KJ休斯-如果用特定于域的属性替换索引和值,则选项1在逗号分隔的CDATA方面语法上不正确。请将表示为2-D数组。请解释您对CDATA的兴趣。您似乎忽略了我写的关于它的用途。@ KjuGes根本没有,我没有忽略Y。我们的观点,特别是消费者不应该被强迫在xml解析之外进行解析。这是非常好的说法。基本上,我的消费者可以以某种方式与选项1协同工作,即使选项2可能也不可行。因此,我想了解发布逗号分隔值但索引w.r.t标记的最佳方法。@kjhughes-如果我用特定于域的属性替换索引和值是选项1,在逗号分隔的CDATA方面语法上不正确。请考虑表示为2-D数组。请解释您对CDATA的兴趣。您似乎忽略了我写的关于它的用途。@ Kjuges一点也没有,我没有忽视您的观点,尤其是CONSUM的事实。ers不应该被迫在xml解析之外进行解析。说得好。基本上,我的消费者可以以某种方式与选项1协同工作,甚至选项2也可能不可行。因此,我想了解发布逗号分隔值的最佳方法,但索引不能超过标记。@colibrison-谢谢,我将尝试使用您的建议。@colibrisson-谢谢,我将尝试使用你的建议。我将投票以“基于意见”的方式结束,因为没有看到你的设计标准,我们无法建议哪种设计是最好的。我将投票以“基于意见”的方式结束,因为没有看到你的设计标准,我们无法建议哪种设计是最好的。