长期读者,第一次海报。现在是时候挖掘这个网站的所有知识了!
我正在尝试设置xml架构并在excel中填充数据。我已经为一些复杂类型做了一些定义,因为它们会经常被重用。如果我引用类型,例如3次,在excel中,它只会映射一次类型。
我对模式很新,但我的老板要我使用它们。任何其他批评将不胜感激。
XML SCHEMA:
<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中,如果我选择root,它只允许我映射每种类型一次。我本来希望包含截图,但显然新用户不能这样做......
答案 0 :(得分:1)
显然元素的“maxOccurs”属性默认为1。我将它设置为“无界”,现在可以正常工作。
<xsd:group name="DoorStyles">
<xsd:sequence>
<xsd:element ref="DoorStyle" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>