javaxml响应设计改进

javaxml响应设计改进,java,xml,freemarker,Java,Xml,Freemarker,我需要将xml响应发送到前端应用程序(.NET)。xml响应将包含太多用于数据的标记。基本上,我需要发送从一个非常大(比如十万行或更大)的表中检索的数据。 xml(例如)是这样的 <Values> <value> <value1></value1> <value2></value2> . . <valuen></valuen> &

我需要将xml响应发送到前端应用程序(.NET)。xml响应将包含太多用于数据的标记。基本上,我需要发送从一个非常大(比如十万行或更大)的表中检索的数据。 xml(例如)是这样的

<Values>
   <value>
      <value1></value1>
      <value2></value2>
      .
      .
      <valuen></valuen>
   </value>
   .
   .
<Values>

.
.
.
.
我对性能问题很好奇。有没有其他方法可以提高速度?我正在使用Freemarker API进行xml响应


请注意,Value1和Value2只是示例标记。实际上,它们是一个表中的字段。

您可以做的事情很少,但从问题和您的评论来看,我不清楚您的回旋余地在哪里。一些选择:

  • 如果没有必要,就不要使用XML。XML生成和解析相对较慢。如果你拥有你的制作人和消费者,那么使用一些快速的方法,比如

  • 尝试一些方法来创建XML

  • 我不相信这会加快你的速度,但它会让事情变得更干净——不要把数字放在value元素中。如果您根本不需要对元素进行排序/标识,那么您的XML应该如下所示:

    <values>
       <value>...</value>
       <value>...</value>
       <value>...</value>
    <values>
    
      <Vs>
    
      <v>
    
      <v1></value1>
    
      <v2></value2>
    
      <vn></valuen>
    
      </v>       
    
      <Vs>
    
    
    ...
    ...
    ...
    
    但如果他们确实需要某种身份证,我建议改为:

    <values>
        <value id="1">...</value>
        <value id="2">...</value>
        <value id="3">...</value>
    </values>
    
    
    ...
    ...
    ...
    
    我可以建议两种选择:

  • 缩短XML中的标记名称,如下所示:

    <values>
       <value>...</value>
       <value>...</value>
       <value>...</value>
    <values>
    
      <Vs>
    
      <v>
    
      <v1></value1>
    
      <v2></value2>
    
      <vn></valuen>
    
      </v>       
    
      <Vs>
    
    
    
  • 使用JSON而不是XML,以便完全保存标记名


  • 创建或使用XML是否太慢?你确定是Freemarker在减速,而不是从DB中退出吗?它是从数据库中提取一次还是每个值?xml的格式是否有任何灵活性?没有。实际上,我将像上面那样实现。在开发之前,我只想问,我的方法是正确的,还是应该采用其他好的方法。其次,我将从数据库中一次性获取所有数据,然后准备xml模板。谢谢您的回答。但我想我无法澄清这个问题。像……这样的标签。。。。这只是一个例子。一个表中会有很多字段,比如大约120个字段。其次,这些将在标签下重复。我只是好奇,好吧,我将把这个大型xml发送到客户端应用程序。