[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Validating with the Operations Schema



Title: Validating with the Operations Schema

Working through draft-ietf-netconf-prot-12 I find that the example XML provided does not validate using the XSD provided in the same document.

The main problem I have run into is the schema does not allow any content within the <config>, <filter> or <data> nodes; the schema defines these to be an empty set.

I have made a few changes to the XSD to allow validation:

For <config> the original XSD definition is:

        <xs:complexType name="configInlineType">
                <xs:complexContent>
                        <xs:restriction base="xs:anyType"/>
                </xs:complexContent>
        </xs:complexType>

By definition http://www.w3.org/TR/xmlschema-1/#key-efm, this resolves to an empty set.

By changing this to:

        <xs:complexType name="configInlineType">
                <xs:sequence>
                        <xs:any namespace="##other" processContents="lax"/>
                </xs:sequence>
        </xs:complexType>

I am able to add elements from my namespace as a payload for <config> which I believe is the desired results.

The other changes are along the same lines.

For the <data> type definition:

        <xs:complexType name="dataInlineType">
                <xs:complexContent>
                        <xs:restriction base="xs:anyType"/>
                </xs:complexContent>
        </xs:complexType>

Also resolved to an empty set.
I changed this to:

        <xs:complexType name="dataInlineType">
                <xs:sequence>
                        <xs:any namespace="##other" processContents="lax"/>
                </xs:sequence>
        </xs:complexType>

and finally, the <filter> definition:

        <xs:complexType name="filterInlineType">
                <xs:complexContent>
                        <xs:restriction base="xs:anyType">
                                <xs:attribute name="type" type="FilterType" default="subtree"/>
                        </xs:restriction>
                </xs:complexContent>
        </xs:complexType>

Is also resolved to an empty set.
I changed this to:

        <xs:complexType name="filterInlineType" mixed="true">
                <xs:sequence>
                        <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
                </xs:sequence>
                <xs:attribute name="type" type="FilterType" default="subtree"/>
        </xs:complexType>

with the added attribute: mixed="true" to allow including XPath _expression_ when the 'type' attribute is set to 'xpath'

Are these valid changes to the Base XSD, or am I missing something?

Thanks,
---------------------------------
Michael Hare
NMI Engineering
Fujitsu Network Communications

GnuPG Key fingerprint = 1AD4 726D E359 A31D 05BF  ACE5 CA93 7AD5 D8E3 A876