【问题标题】:How to create validation file for XML with dynamic elements?如何使用动态元素为 XML 创建验证文件?
【发布时间】:2013-01-24 01:00:49
【问题描述】:

我需要为以下 XML 创建验证文件(DTD 或 Schema 或其他):

<?xml version="1.0" encoding="UTF-8"?>
<Result>
  <StatusCode>1</StatusCode>
  <StatusMessage>
     <SSPReturnMessage>
       <S>false</S>
       <Date>23-Jan-2013 14:33</Date>
       <EL>
         <E EC="473">
            <ES><![CDATA[Error message]]></ES>
         </E>
       </EL>
     </SSPReturnMessage>
  </StatusMessage>
  <Data>
    <LocalPort>-1</LocalPort>
    <TunnelID></TunnelID>
  </Data>
</Result>  

Data 标签是可选的,里面的标签可以是任何东西(任何标签名称)。
问题是如何做到这一点以及使用哪种技术? DTD 还是模式?甚至是别的什么?

【问题讨论】:

  • 验证是什么意思,只是标签或日期之类的东西是有效日期
  • 验证意味着简洁的形式语法,准确地声明哪些元素和引用可能出现在特定类型的文档中,以及元素、内容和属性是什么。
  • 基本上,主要的问题是如何动态验证一开始就不知道的内部Data标签。
  • @Mark 也许我需要使用 Schema: 这将跳过内部数据标签解析。
  • 我知道 validate 在字典中是什么意思 - 但在 XML 中,如果可能意味着检查它是有效的 XML,XML 是一个场景或检查数据是否有效

标签: xml dtd


【解决方案1】:

你不能用 DTD 做到这一点。您可以Data声明为:

<!ELEMENT Data ANY>

Data 的任何子级仍需要声明(您不能这样做,因为您不知道这些元素是什么)。

我认为您是正确的,需要在 XSD 中使用 xs:any

【讨论】:

  • 谢谢,我想我会使用 XSD 作为解决方案。
猜你喜欢
  • 1970-01-01
  • 2011-07-20
  • 2020-12-15
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
相关资源
最近更新 更多