首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建Idoc文件的xsd

创建Idoc文件的xsd
EN

Stack Overflow用户
提问于 2019-07-30 17:12:23
回答 1查看 430关注 0票数 0

我们目前正计划通过Idoc文件.xml与运行SAP的合作伙伴进行沟通。

我们已经通过.xml通信,但是使用我们的模式结构,现在我试图修改我的.xsd,以从Idoc WMTORD获取数据,其中包含一个标签EILTORH和一个标签EILTORI,其中标签EILTORH包含一次出现的标签,而标签EILTORI出现多次

我的问题是我应该使用哪种类型,我试图使这两种类型的序列和所有类型都在同一个标签上,但它不起作用

代码语言:javascript
复制
<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>
代码语言:javascript
复制
<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>

下面是该文件的示例

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2019-08-05 09:00:35

您似乎缺少许多字段的定义,下面是我从您的XML生成的完整定义(在包装了一个iDOC根节点之后,您可以重命名它)。

你说的其中一件事是EILTORI出现了很多次,但是你的元素EILTORI没有我设置的maxOccurs="unbounded"

我将EILTORI类型的定义保留为xs:all,不确定您在问题中的意思是按顺序还是不按顺序。

代码语言:javascript
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57268162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档