以下は、XML Spy では有効であるが、Biztalk ではピリオドまたはハイフンを使用して参照された要素で停止する XSD のコードです。私が何か間違ったことをしているのか、またはこれがバグまたは「機能」であることを確認できますか? 誰にも回避策がありますか?.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 がこれらの文字でチョークするという私の理論を確認/反論してください。
ティア!