[1]
<xsd:element name="stock" ref="Stock" minOccurs="1" maxOccurs="unbounded"/>
This won't ever be a valid construction.
[1.1] Either you want the element at that location be called "Stock" (with the upper s) and reference the global element so defined up there at the top-level. In this case, you simply reference to it like this.
[1.2] Or you want the element at that location be called "stock" with the structure in mind as that global element named "Stock" (with the upper s). In that case, you rename the global element to "stock".
and reference it like this.
[2] Note also that you can reference to Stock/stock without prefix and that you can say type="Quote" without prefix are simply due to you having a default namespace defined which happens to coincide with the targetNamespace; if not, a prefix is needed to result in a fully-qualified name as value for the ref and type attributes.