2012-06-08 3 views
1

Долгое время читатель, впервые плакат. Пришло время разминировать этот сайт для всех его знаний!Правильное сопоставление xml-схемы в Excel

Я пытаюсь настроить xml-схему и заполнить данные внутри excel. Я сделал некоторые определения для некоторых complexTypes, потому что они будут использоваться повторно довольно часто. Если я ссылаюсь на тип, например, 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 оно только позволяет мне карту каждого типа один раз, если я выбираю в качестве корня. Мне бы хотелось включить скриншот, но, видимо, новые пользователи не могут этого сделать ...

+0

В чем вопрос? Как это относится к Excel? Пожалуйста, прочитайте [FAQ] и [Ask] для публикации рекомендаций. –

+0

Я импортирую схему XSD, чтобы преуспеть, а затем экспортировать в xml. Вопрос состоял в том, как иметь несколько ссылок на элемент. Я бы опубликовал исправление, но StackOverflow, по-видимому, очень ограничивает новичков. Спасибо, в любом случае –

ответ

1

Так что, по-видимому, атрибут «maxOccurs» на элементах по умолчанию равен одному. Я назначил его «неограниченным», и теперь он работает.

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