Пример xml, который вы опубликовали, не будет действительным для любой схемы. На самом деле у xml никогда не должно быть нескольких корневых узлов (как в вашем примере). Вы должны обернуть их в один корневой узел.
В ответ на ваш вопрос xsd не поддерживает значения атрибутов, зависящие от количества узлов в наборе узлов, как вы предполагаете. Лучшее, что вы можете сделать, это использовать неограниченно для вашего maxOccurs.
Схема, которую вы хотите, будет выглядеть примерно так:
<xs:schema xmlns="http://mynamespace" targetNamespace="http://mynamespace" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="cols">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string" />
<xs:element name="type" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="rows">
<xs:complexType>
<xs:sequence>
<xs:element name="c">
<xs:complexType>
<xs:sequence>
<xs:element name="v" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Надеюсь, это поможет вам