OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-c-cpp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: WSDL extension schema



I put the draft schema for C WSDL extensions through a validator and found a problem.  The draft version defines the types for the elements (e.g.PrefixType)  without referencing the base type for the substitution group (ExtensionType).  To fix this, the attribute definition needs to be nexted inside complexContnet and extension elements.

This fixes all but enableWrapperStyle, which right now is of type boolean, which does not derive from ExtensionType.  To make this work I believe we either need to make enableWrapperStyle have a boolean attribute or add enableWrraperStyle to the sequence in BindingsType (with minOccurs="0" and maxOccurs="1").  This latter approach would force enableWrapperStyle to be the last child of a bindings element.  There may be another option, but I am not a schema expert.

I noticed one other thing, the extensions element in the sequence  of BindingsType should have minOccurs="0" maxOccurs="unbounded".

The schema with these changes is:.

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca-c-cpp/c/200901"
        xmlns:sca-c="http://docs.oasis-open.org/ns/opencsa/sca-c-cpp/c/200901"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

        <element name="bindings" type="sca-c:BindingsType" />
        <complexType name="BindingsType">
                <sequence>
                        <element ref="sca-c:extension" minOccurs="0"
                                maxOccurs="unbounded"/>
                </sequence>
        </complexType>

        <element name="extension" type="sca-c:ExtensionType" />
        <complexType name="ExtensionType"></complexType>

        <element name="prefix" type="sca-c:PrefixType"
                substitutionGroup="sca-c:extension" />
        <complexType name="PrefixType">
                <complexContent>
                        <extension base="sca-c:ExtensionType">
                                <attribute name="name" type="xsd:string" use="required" />
                        </extension>
                </complexContent>
        </complexType>

        <element name="function" type="sca-c:FunctionType"
                substitutionGroup="sca-c:extension" />
        <complexType name="FunctionType">
                <complexContent>
                        <extension base="sca-c:ExtensionType">
                                <attribute name="name" type="xsd:string" use="required" />
                        </extension>
                </complexContent>
        </complexType>

        <element name="struct" type="sca-c:StructType"
                substitutionGroup="sca-c:extension" />
        <complexType name="StructType">
                <complexContent>
                        <extension base="sca-c:ExtensionType">
                                <attribute name="name" type="xsd:string" use="required" />
                        </extension>
                </complexContent>
        </complexType>

        <element name="parameter" type="sca-c:ParameterType"
                substitutionGroup="sca-c:extension" />
        <complexType name="ParameterType">
                <complexContent>
                        <extension base="sca-c:ExtensionType">
                                <attribute name="part" type="xsd:string" use="required" />
                                <attribute name="childElementName" type="xsd:QName"
                                        use="required" />
                                <attribute name="name" type="xsd:string" use="required" />
                        </extension>
                </complexContent>
        </complexType>

        <element name="enableWrapperStyle" type="xsd:boolean"
                substitutionGroup="sca-c:extension" />

        <element name="CType" type="sca-c:CTypeType"
                substitutionGroup="sca-c:extension" />
        <complexType name="CTypeType">
                <complexContent>
                        <extension base="sca-c:ExtensionType">
                                <attribute name="name" type="xsd:string" use="required" />
                                <attribute name="XMLType" type="xsd:QName"
                                        use="required" />
                                <attribute name="function" type="xsd:string"
                                        use="required" />
                                <attribute name="library" type="xsd:string"
                                        use="required" />
                        </extension>
                </complexContent>
        </complexType>
</schema>

Bryan Aupperle, Ph.D.
STSM, WebSphere Enterprise Platform Software Solution Architect
Master Inventor

Research Triangle Park,  NC
+1 919-254-7508 (T/L 444-7508)
Internet Address: aupperle@us.ibm.com


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]