有没有办法在 biztalk 收到的 xml 文件中 handle/ignore 内联 xsd?
Is there a way to handle/ignore inline xsd in received xml file in biztalk?
客户在 xml 中发送包含客户数据的文件。问题是它还包含他们使用的 xsd。在 biztalk 中设置源模式时,有没有办法在忽略 xsd?
的情况下进行验证
我试过为它包含节点,但由于某些命名空间错误而无法验证,它一直在寻找包含客户数据的第一个元素节点
<Root>
<xsd:schema id="Root" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="Root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="Data" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="number" type="xsd:int"/>
<xsd:element name="name">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="60"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="address">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Zip">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="telephone">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="60"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="custNumber">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="11"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="branchnumber" type="xsd:int"/>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<Data>
<number>12345</number>
<name>Scrooge McDuck</name>
<address>Address 1</adresse>
<Zip>0000</Zip>
<telephone>1234563290</telephone>
<custNumber>123324</custNumber>
<branchnumber>0</branchnumber>
</Data>
<Data>
<number>23456</number>
<name>Donald Duck</name>
<address>Address 4</adresse>
<Zip>4625</Zip>
<telephone>1234567890</telephone>
<custNumber>123321</custNumber>
<branchnumber>0</branchnumber>
</Data>
</Root>
我认为这实际上不会造成问题。
首先,不要在运行时进行验证,从来没有人这样做过,这无关紧要。
模式应该只包含内容节点,这在映射器、属性等中工作得很好
由于您未进行验证,因此只要架构有效 xml,它将随行并被忽略。
要在 VS 中验证,只需取出架构节点。
客户在 xml 中发送包含客户数据的文件。问题是它还包含他们使用的 xsd。在 biztalk 中设置源模式时,有没有办法在忽略 xsd?
的情况下进行验证我试过为它包含节点,但由于某些命名空间错误而无法验证,它一直在寻找包含客户数据的第一个元素节点
<Root>
<xsd:schema id="Root" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="Root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="Data" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="number" type="xsd:int"/>
<xsd:element name="name">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="60"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="address">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Zip">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="telephone">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="60"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="custNumber">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="11"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="branchnumber" type="xsd:int"/>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<Data>
<number>12345</number>
<name>Scrooge McDuck</name>
<address>Address 1</adresse>
<Zip>0000</Zip>
<telephone>1234563290</telephone>
<custNumber>123324</custNumber>
<branchnumber>0</branchnumber>
</Data>
<Data>
<number>23456</number>
<name>Donald Duck</name>
<address>Address 4</adresse>
<Zip>4625</Zip>
<telephone>1234567890</telephone>
<custNumber>123321</custNumber>
<branchnumber>0</branchnumber>
</Data>
</Root>
我认为这实际上不会造成问题。
首先,不要在运行时进行验证,从来没有人这样做过,这无关紧要。
模式应该只包含内容节点,这在映射器、属性等中工作得很好
由于您未进行验证,因此只要架构有效 xml,它将随行并被忽略。
要在 VS 中验证,只需取出架构节点。