【问题标题】:Can you add a DTD schema to an biztalk created XML if you don't have the DTD?如果您没有 DTD,是否可以将 DTD 模式添加到 biztalk 创建的 XML?
【发布时间】:2015-07-08 08:40:52
【问题描述】:

我们需要为与我们打交道的航运软件公司创建一个 XML。

基本上,输出的xml需要包含以下doctype

<!DOCTYPE INTERFACE_CREATE_SHIPMENT SYSTEM "INTERFACE_CREATE_SHIPMENT.dtd"> 

但是我没有这个文件,所以将它添加到映射 Doctype 系统会导致错误,所以我不知道它是否可以工作。是否可以让 BizTalk 添加此文档类型,而我的 DTD 不可用?或者我可以创建一个具有相同名称的新 DTD 来创建文件吗?

【问题讨论】:

  • 最好的解决方案是从公司获取 DTD,但我想这是不可能的?
  • @cvesters 我正在尝试获取 DTD 文件。但我不能确定他们是否会给我们。
  • 您只需要!DOCTYPE 声明,还是还需要使用元素/属性/等。在该 DTD 中定义(您不会在 XSD 中为 BizTalk 定义)?
  • @DanField 我们只需要 !DOCTYPE 作为我们输出的一部分。我们在一个 word 文件中收到了 XML 的规则,并且正在遵循该规则。现在对方只是说文件失败是因为它需要填写 DOCTYPE。获取实际的 DTD 会更好,但截止日期可能不允许我们等待它。

标签: xml xslt biztalk


【解决方案1】:

您只需在设计时在管道组件中设置自己的自定义 xml 声明

您应该在“添加处理说明文本”字段中输入

  <?xml version="1.0" standalone="no" ?><!DOCTYPE INTERFACE_CREATE_SHIPMENT SYSTEM "INTERFACE_CREATE_SHIPMENT.dtd">

不要忘记将 Add XML Declaration 设置为 false

更多详情请点击此处http://cherifmahieddine.com/2013/09/23/custom-biztalk-xml-declaration/

【讨论】:

  • 这看起来不对。 OP 想要添加 DOCTYPE 声明,而不是 XML 声明或处理指令。
  • 他想在他的输出 XML 中添加这个 Doctype 声明,使用这个解决方案你可以添加任何你想要的,我的意思是你可以设置你的 xml 声明 + 添加一个没有任何验证的 doctype(因此没有验证错误)。这是无需任何定制开发的解决方案
  • 好的,如果你这么说的话。建议将“添加处理指令文本”字段用于显然不是处理指令的内容让我感到困惑。
  • 一个 XML 文件以 xml/xsl 处理指令开头,后跟(可选)一个 doctype 声明我同意 doctype 在这里无关,但 MS 实现的方式是你可以把所有 xml/ xsl 处理指令 + doctype 声明,所以是的,使用的术语并不完全正确,但是:)
  • 这只是一个拼写错误(从我的博客复制粘贴),我很高兴它对你有用
【解决方案2】:

假设您只需要 !DOCTYPE 声明,而您无法获得实际的 .dtd 文件,那么您有两个选择:

  1. 模拟 .dtd 文件。不太可取,因为这可能会导致定义冲突的问题,并且后来的开发人员可能会误解它只是一个模拟文件。
  2. 创建管道组件以在编码阶段添加!DOCTYPE 声明。只要您不需要该 dtd 中的任何特殊内容,这应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2013-04-07
    • 1970-01-01
    • 2011-08-27
    • 2012-02-07
    • 2010-10-12
    • 2014-07-13
    相关资源
    最近更新 更多