1

長年の読者、初めてのポスター。すべての知識のためにこのサイトをマイニングする時が来ました!

xmlスキーマを設定し、Excel内にデータを入力しようとしています。かなり頻繁に再利用されるため、いくつかのcomplexTypesの定義をいくつか作成しました。たとえば3回タイプを参照すると、Excel内ではタイプが1回だけマップされます。

私はスキーマにかなり慣れていませんが、上司は私にスキーマを使用することを望んでいます。その他の批判は大歓迎です。

XMLスキーマ:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">


<!-- Type Definitions (DoorStyle, Colour, Accessory and TamarackModel) -->

<xsd:complexType name="DoorStyle">
  <xsd:sequence>
    <xsd:element name="style" type="xsd:string"/>
      <xsd:element name="wood" type="xsd:string"/>
    <xsd:element name="colour" type="xsd:string"/>
    <xsd:element name="imgsrc" type="xsd:string"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Colour">
  <xsd:sequence>
    <xsd:element name="colour" type="xsd:string"/>
    <xsd:element name="wood" type="xsd:string"/>
    <xsd:element name="imgsrc" type="xsd:string"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Accessory">
  <xsd:sequence>
    <xsd:element name="pdf" type="xsd:string"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="TamarackModel">
  <xsd:sequence>
    <xsd:element name="drawing" type="xsd:string"/>
    <xsd:element name="reverseDrawing" type="xsd:string"/>
    <xsd:element name="priceSheet" type="xsd:string"/>
  </xsd:sequence>
</xsd:complexType>


<!-- Group Definitions (DoorStyles, Colours, Accessories and TamarackModels) -->

<xsd:element name="DoorStyles">
  <xsd:complexType>
<!-- <xsd:attribute name="url" type="xsd:string" fixed="http://www.muskokacabco.com/muskoka-kitchens-gallery-door-styles.html"/> -->
    <xsd:sequence>
      <xsd:element name="DoorStyle" type="DoorStyle"/>
      <xsd:element name="DoorStyle" type="DoorStyle"/>
      <xsd:element name="DoorStyle" type="DoorStyle"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:element name="Colours">
  <xsd:complexType>
<!-- xsd:attribute name="url" type="xsd:string" fixed="http://www.muskokacabco.com/muskoka-kitchens-gallery-stain-colours.html"/> -->
    <xsd:sequence>
      <xsd:element name="Colour" type="Colour"/>
      <xsd:element name="Colour" type="Colour"/>
      <xsd:element name="Colour" type="Colour"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:element name="Accessories">
  <xsd:complexType>
<!-- <xsd:attribute name="url" type="xsd:string" fixed="http://www.muskokacabco.com/muskoka-kitchens-accessories.html"/> -->
    <xsd:sequence>
      <xsd:element name="Accessory" type="Accessory"/>
      <xsd:element name="Accessory" type="Accessory"/>
      <xsd:element name="Accessory" type="Accessory"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<xsd:element name="TamarackModels">
  <xsd:complexType>
<!-- <xsd:attribute name="url" type="xsd:string" fixed="http://www.muskokacabco.com/muskoka-kitchens-tamarack-models.html"/> -->
    <xsd:sequence>
      <xsd:element name="TamarackModel" type="TamarackModel"/>
      <xsd:element name="TamarackModel" type="TamarackModel"/>
      <xsd:element name="TamarackModel" type="TamarackModel"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>


<!-- Overall Structure -->

<xsd:element name="MuskokaSite">
<!-- <xsd:attribute name="url" type="xsd:string" fixed="http://www.muskokacabco.com"/> -->
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="DoorStyles"/>
      <xsd:element ref="Colours"/>
      <xsd:element ref="Accessories"/>
      <xsd:element ref="TamarackModels"/>
     </xsd:sequence>
  </xsd:complexType>
</xsd:element>

</xsd:schema>

したがって、各タイプを約3回参照しますが、Excelでは、ルートとして選択した場合、各タイプを1回しかマップできません。スクリーンショットを含めたかったのですが、どうやら新しいユーザーはそれを行うことができません...

4

1 に答える 1

1

したがって、要素の「maxOccurs」属性はデフォルトで1になっているようです。「無制限」に設定すると、動作するようになりました。

    <xsd:group name="DoorStyles">
      <xsd:sequence>
        <xsd:element ref="DoorStyle" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:group>
于 2012-06-09T01:52:52.437 に答える