0
votes

I'm trying to validate this XML file line 127 XmlSchema error: Element http://www.w3.org/2001/XMLSchema:element is invalid in this context. Line 125, Position 4. Related schema item SourceUri: virtual://server/schema.xsd, Line 177, Position 2.

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:msg="urn:smco.messages" xmlns:md="urn:smco.marketData" xsi:schemaLocation="urn:smco.messages schema/smco_marketData-messages.xsd"
elementFormDefault="qualified">
    <xs:element name="msg:messageStandard">
        <xs:complexType>
            <xs:sequence>

                <xs:element name="msg:messageId" type="xs:token"/>
                <xs:element name="msg:timeStamp" type="xs:dateTime"/>
                <xs:element ref="msg:messagePublisher" type="xs:token"/>
                <xs:element name="msg:singleObjectMessage" maxOccurs="unbounded" />
                <xs:element name="msg:messageObjectCount" type="xs:decimal"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>


    <xs:simpleType name="type-dates_openEnded">
        <xs:annotation>
            <xs:documentation xml:lang="EN">XML date type with the token 'open' where 'open' is later/before (greater/lesser) than any date value</xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="xs:date">
            <xs:simpleType>
                <xs:restriction base="xs:token">
                    <xs:enumeration value="open"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:union>
    </xs:simpleType>

    <xs:complexType name="type-scheme">
        <xs:annotation>
            <xs:documentation xml:lang="en">The base class for all types which define coding schemes. An instance uses the </xs:documentation>
            <xs:documentation xml:lang="en">An instance uses the attributes to fully specify the value domaine by stating it's identification and linking to the documentation of its scope and description of each of its possible values.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:normalizedString">
                <xs:attribute name="schemeValues" type="xs:anyURI"/>
                <xs:attribute name="schemeCode" type="xs:normalizedString"/>
                <xs:attribute name="schemeName" type="xs:normalizedString"/>
                <xs:attribute name="schemeVersion" type="xs:normalizedString"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="type-iso.country">
        <xs:annotation>
            <xs:documentation xml:lang="EN">Must conform to ISO 3166 - Representation of Countries</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:normalizedString">
            <xs:pattern value="[A-Z][A-Z]"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="type-iso.currency">
        <xs:annotation>
            <xs:documentation xml:lang="EN">Must conform to ISO 4217 - Representation of Currency and Funds</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:normalizedString">
            <xs:pattern value="[A-Z][A-Z][A-Z]"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="type-iso.market">
        <xs:annotation>
            <xs:documentation xml:lang="EN">Must conform to ISO 10383 - Representation of Market Identification Codes</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Z][A-Z][A-Z][A-Z]" />
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="type-msg.identificationCode">

        <xs:sequence>
            <xs:element name="msg:codeLevel" type="type-msg.identificationLevel"/>
            <xs:element name="msg:startDate" type="type-dates_openEnded">

            </xs:element>
            <xs:element name="msg:endDate" type="type-dates_openEnded">

            </xs:element>
            <xs:element name="msg:codeType" type="type-scheme">

            </xs:element>
            <xs:element name="msg:code" type="xs:string">

            </xs:element>

        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="type-inst.identificationCode">
        <xs:sequence>
            <xs:element name="inst:codeLevel" type="type-identificationLevel"/>
            <xs:element name="inst:startDate" type="type-dates_openEnded">
            </xs:element>
            <xs:element name="inst:endDate" type="type-dates_openEnded">
            </xs:element>
            <xs:element name="inst:codeType" type="type-scheme">

            </xs:element>
            <xs:element name="inst:code" type="xs:string">
            </xs:element>

        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="type-localizedString">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="language" type="xs:language"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="type-msg.identificationLevel">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="level" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="type-msg:scope">
        <xs:simpleContent>
            <xs:element name="msg:market" type="type-scheme"/>
            <xs:element name="msg:actionType" type="xs:token"/>
        </xs:simpleContent>
        <xs:attribute name="intent" type="xs:string"/>
        <xs:attribute name="level" type="xs:string"/>
    </xs:complexType>


    <xs:complexType name="type-messagePurpose">
        <xs:sequence>
            <xs:element name="msg:effectiveDate" type="xs:date"/>
            <xs:element name="msg:intendedScopes">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="msg:scope" type="type-msg:scope"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>


    <xs:element name="msg:singleObjectMessage" >
        <xs:complexType>
            <xs:sequence>
                <xs:element name="msg:messagePurpose" type="type-messagePurpose"/>
                <xs:element name="msg:content" type="content-marketQuotes"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="type-dataPoint">
        <xs:sequence> 
            <xs:element name="value1" type="type-typedValue" maxOccurs="unbounded"/>
            <xs:element name="value2" type="type-typedValue" maxOccurs="unbounded"/>
            <xs:element name="value3" type="type-typedValue" maxOccurs="unbounded"/>
            <xs:element name="value4" type="type-typedValue" maxOccurs="unbounded"/>
            <xs:element name="value5" type="type-typedValue" maxOccurs="unbounded"/>
            <xs:element name="value6" type="type-typedValue" maxOccurs="unbounded"/>
            <xs:element name="value7" type="type-typedValue" maxOccurs="unbounded"/>
            <xs:element name="value8" type="type-typedValue" maxOccurs="unbounded"/>
        </xs:sequence> 
        <xs:attribute  name="structureType" type="xs:string"/>
    </xs:complexType>

    <xs:complexType name="type-typedValue">
        <xs:simpleContent>
            <xs:extension base="xs:decimal">
                <xs:attribute name="dataType" type="xs:string" use="required"/> 
                <xs:attribute name="dataUnit" type="xs:string" use="required"/> 
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="content-marketQuotes">
        <xs:sequence>
            <xs:element name="msg:standardIdentifier" type="type-msg.identificationCode"/>
            <xs:element name="msg:knownIdentifiers" >
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="msg:identifier" type="type-msg.identificationCode" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="msg:extendedCFICode" type="type-scheme"/>
            <xs:element name="msg:observation" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence> 
                        <xs:element name="md:source" type="xs:string"/>
                        <xs:element name="md:market" type="type-scheme"/>
                        <xs:element name="md:country" type="type-scheme"/>
                        <xs:element name="md:currency" type="type-scheme"/>
                        <xs:element name="md:pointLabel" type="xs:string"/>
                        <xs:element name="md:date" type="xs:date"/>
                        <xs:element name="md:endDate" type="type-dates_openEnded"/>
                        <xs:element name="md:dataPoint" type="type-dataPoint"/>
                    </xs:sequence>
                    <xs:attribute name="quoteType" type="xs:string" use="required"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="msg:observationCount" type="xs:decimal"/>
        </xs:sequence>
        <xs:attribute name="xsi:type" type="xs:string" use="required"/>
    </xs:complexType>

</xs:schema>

On this line --> xs:element name="msg:market" type="type-scheme" I get the error! can anyone help?

1
(1) So far you shared your XSD. Where is your XML that you are trying to validate against that XSD? (2) Your XSD is using msg namepace prefix without its declaration. That's why the XSD is 'invalid'.Yitzhak Khabinsky
I add the missing part But still I have the same issueuser3317519

1 Answers

0
votes

I'm seeing a different error: my schema processor is telling me that name="msg:messageId" is invalid. You've used this construct throughout, so I see a lot of errors, which may be masking the error that your processor has given you.

The name attribute in XSD is always an unqualified local name; when you declare components, they implicitly go either in the targetNamespace of the schema document, or (if form="unqualified") in no namespace.