在Excel中正确映射xml模式

很长时间的读者,第一次的海报。 是时候挖掘这个网站的所有知识!

我试图设置一个XML模式,并在Excel中填充数据。 我已经对一些complexTypes做了一些定义,因为它们会经常被重用。 如果我参考types,例如3次,在excel里它只能映射一次types。

我对模式很陌生,但是我的老板想让我使用它们。 任何其他批评将不胜感激。

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> 

所以我参考了每种types大约3次,但是在excel中它只允许我将每种types映射一次,如果我select作为根。 我会喜欢包括一个截图,但显然新用户不能这样做…

显然,元素上的“maxOccurs”属性默认为1。 我把它设置为“无界”,现在就起作用了。

  <xsd:group name="DoorStyles"> <xsd:sequence> <xsd:element ref="DoorStyle" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group>