这是 XSD 的一些代码,它在 XML Spy 中是有效的,但在 Biztalk 中使用句点或连字符在引用的元素上阻塞。谁能告诉我我做错了什么,或者确认这是错误还是“功能”?有人有解决方法吗?我在 .NET(和 BizTalk)中搜索并搜索了 XSD/XML 验证中的异常情况,但没有看到任何内容(任何有类似问题的人。)
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2012 rel. 2 (x64) (http://www.altova.com) by ZiggyDude (PA DPW-BIS) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="DotNetRestrictions">
<xs:complexType>
<xs:choice>
<xs:element name="Valid">
<xs:complexType>
<xs:sequence>
<xs:element name="Embedded-Hyphen"/>
<xs:element name="Embedded.Period"/>
<xs:element name="Embedded_Underscore"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Invalid">
<xs:complexType>
<xs:sequence>
<xs:element ref="Embedded-Hyphen"/>
<xs:element ref="Embedded.Period"/>
<xs:element ref="Embedded_Underscore"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Embedded.Period"/>
<xs:element name="Embedded-Hyphen"/>
<xs:element name="Embedded_Underscore"/>
</xs:schema>
请注意,嵌入的下划线在 .NET 中不会失败。通过将所有句点和连字符更改为下划线来实现这一点,但发送机构不会以“下划线”格式提供 XML 或 XSD。这些文件使用句点和连字符发送到太多地方。我们要么需要 1) 配置此权限,使其尽可能工作,2) 修复 BizTalk 和 .NET (heh.heh.heh) 或 3) 动态转换这些 XML 文档以在处理之前替换句点和连字符。
想法?并且请确认/反驳我的理论,即当元素被称为参考时,BizTalk/.NET 会阻塞这些字符。
蒂亚!