我们目前正计划通过Idoc文件.xml与运行SAP的合作伙伴进行沟通。
我们已经通过.xml通信,但是使用我们的模式结构,现在我试图修改我的.xsd,以从Idoc WMTORD获取数据,其中包含一个标签EILTORH和一个标签EILTORI,其中标签EILTORH包含一次出现的标签,而标签EILTORI出现多次
我的问题是我应该使用哪种类型,我试图使这两种类型的序列和所有类型都在同一个标签上,但它不起作用
<xsd:element name="E1LTORH" type = "E1LTORHType" minOccurs="0"/>
<xsd:complexType name="E1LTORHType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="LGNUM" type="xsd:string" minOccurs="0" />
<xsd:element name="TANUM" type="xsd:string" minOccurs="0" />
<xsd:element name="E1LTORI" type="E1LTORIType" minOccurs="0" />
</xsd:sequence><xsd:complexType name="E1LTORIType">
<xsd:all maxOccurs="1">
<xsd:element name="Operation" type="OperationType"minOccurs="0"/>
<xsd:element name="TAPOS" type="xsd:integer" minOccurs="0" />
<xsd:element name="MATNR" type="xsd:string" minOccurs="0" />
<xsd:element name="WERKS" type="xsd:string" minOccurs="0" />
<xsd:element name="CHARG" type="xsd:string" minOccurs="0" />
<xsd:element name="MEINS" type="xsd:string" minOccurs="0" />
<xsd:element name="LETYP" type="xsd:string" minOccurs="0" />
</xsd:all>
<xsd:attribute name="SEGMENT" type="xsd:string" />
</xsd:complexType>下面是该文件的示例
<E1LTORH SEGMENT="1">
<LGNUM>B02</LGNUM>
<TANUM>0100000024</TANUM>
<BWLVS>999</BWLVS>
<TRART>X</TRART>
<BNAME>GUPET</BNAME>
<PERNR>00000000</PERNR>
<SOLWM> 0.000</SOLWM>
<SOLEX> 0.000</SOLEX>
<ISTWM> 0.000</ISTWM>
<STDAT>00000000</STDAT>
<ENDAT>00000000</ENDAT>
<STUZT>000000</STUZT>
<ENUZT>000000</ENUZT>
<SWABW>0000</SWABW>
<TAPRI>00</TAPRI>
<E1LTORI SEGMENT="1">
<TAPOS>0001</TAPOS>
<MATNR>ISA46290</MATNR>
<WERKS>BP02</WERKS>
<CHARG>L01.01</CHARG>
<MEINS>ST</MEINS>
<LETYP>BT1</LETYP>
<KZQUI>X</KZQUI>
<WDATU>20181212</WDATU>
<WENUM>4900002737</WENUM>
<WEPOS>0001</WEPOS>
<VLTYP>MEC</VLTYP>
<VLBER>001</VLBER>
<VLPLA>TRANSTOCK</VLPLA>
<VSOLM>10.000</VSOLM>
<NLTYP>PCO</NLTYP>
<NLBER>001</NLBER>
<NLPLA>PCO-B-3A</NLPLA>
<NSOLM>10.000</NSOLM>
<MAKTX>Bleomycin complex A2/B2 ISA</MAKTX>
<NLENR>00000000002000000823</NLENR>
<QPLOS>000000000000</QPLOS>
<QPLOA>000000000000</QPLOA>
<LGORT>ETA2</LGORT>
<SOLPO> 0.000</SOLPO>
<VOLUM> 0.000</VOLUM>
<NPLEI>1</NPLEI>
<NWIRM> 0.000</NWIRM>
</E1LTORI>
</E1LTORH>发布于 2019-08-05 09:00:35
您似乎缺少许多字段的定义,下面是我从您的XML生成的完整定义(在包装了一个iDOC根节点之后,您可以重命名它)。
你说的其中一件事是EILTORI出现了很多次,但是你的元素EILTORI没有我设置的maxOccurs="unbounded"。
我将EILTORI类型的定义保留为xs:all,不确定您在问题中的意思是按顺序还是不按顺序。
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="iDOC">
<xs:complexType>
<xs:sequence>
<xs:element name="E1LTORH">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="LGNUM" type="xs:string" />
<xs:element minOccurs="0" name="TANUM" type="xs:string" />
<xs:element minOccurs="0" name="BWLVS" type="xs:string" />
<xs:element minOccurs="0" name="TRART" type="xs:string" />
<xs:element minOccurs="0" name="BNAME" type="xs:string" />
<xs:element minOccurs="0" name="PERNR" type="xs:string" />
<xs:element minOccurs="0" name="SOLWM" type="xs:decimal" />
<xs:element minOccurs="0" name="SOLEX" type="xs:decimal" />
<xs:element minOccurs="0" name="ISTWM" type="xs:decimal" />
<xs:element minOccurs="0" name="STDAT" type="xs:string" />
<xs:element minOccurs="0" name="ENDAT" type="xs:string" />
<xs:element minOccurs="0" name="STUZT" type="xs:string" />
<xs:element minOccurs="0" name="ENUZT" type="xs:string" />
<xs:element minOccurs="0" name="SWABW" type="xs:string" />
<xs:element minOccurs="0" name="TAPRI" type="xs:string" />
<xs:element maxOccurs="unbounded" name="E1LTORI" type="E1LTORI" />
</xs:sequence>
<xs:attribute name="SEGMENT" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="E1LTORI">
<xs:all minOccurs="1" maxOccurs="1">
<xs:element minOccurs="0" name="TAPOS" type="xs:string" />
<xs:element minOccurs="0" name="MATNR" type="xs:string" />
<xs:element minOccurs="0" name="WERKS" type="xs:string" />
<xs:element minOccurs="0" name="CHARG" type="xs:string" />
<xs:element minOccurs="0" name="MEINS" type="xs:string" />
<xs:element minOccurs="0" name="LETYP" type="xs:string" />
<xs:element minOccurs="0" name="KZQUI" type="xs:string" />
<xs:element minOccurs="0" name="WDATU" type="xs:string" />
<xs:element minOccurs="0" name="WENUM" type="xs:string" />
<xs:element minOccurs="0" name="WEPOS" type="xs:string" />
<xs:element minOccurs="0" name="VLTYP" type="xs:string" />
<xs:element minOccurs="0" name="VLBER" type="xs:string" />
<xs:element minOccurs="0" name="VLPLA" type="xs:string" />
<xs:element minOccurs="0" name="VSOLM" type="xs:decimal" />
<xs:element minOccurs="0" name="NLTYP" type="xs:string" />
<xs:element minOccurs="0" name="NLBER" type="xs:string" />
<xs:element minOccurs="0" name="NLPLA" type="xs:string" />
<xs:element minOccurs="0" name="NSOLM" type="xs:decimal" />
<xs:element minOccurs="0" name="MAKTX" type="xs:string" />
<xs:element minOccurs="0" name="NLENR" type="xs:string" />
<xs:element minOccurs="0" name="QPLOS" type="xs:string" />
<xs:element minOccurs="0" name="QPLOA" type="xs:string" />
<xs:element minOccurs="0" name="LGORT" type="xs:string" />
<xs:element minOccurs="0" name="SOLPO" type="xs:decimal" />
<xs:element minOccurs="0" name="VOLUM" type="xs:decimal" />
<xs:element minOccurs="0" name="NPLEI" type="xs:integer" />
<xs:element minOccurs="0" name="NWIRM" type="xs:decimal" />
</xs:all>
<xs:attribute name="SEGMENT" type="xs:string" use="required" />
</xs:complexType>
</xs:schema>https://stackoverflow.com/questions/57268162
复制相似问题