[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: New Issue: Bug in ServiceGroup WSDL
An issue discovered by one of our developers: I just discovered a bug in the service group WSDL when trying to compile its schema section using the XMLBeans schema compiler. The error message given by the scema compiler was: [schema-compiler] [ERROR] src/specifications/WS-ServiceGroup-1_2.wsdl:0: error: String: './*MembershipContentRule [namespace-uri()='http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-Servic eGroup-1.2-draft-01.xsd']' does not match pattern for type of xpath attribute in type of element xs:selector Here is the definition of the xs:selector element from the XMLSchema schema: <xs:element name="selector" id="selector"> <xs:annotation> <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-selector"/> </xs:annotation> <xs:complexType> <xs:complexContent> <xs:extension base="xs:annotated"> <xs:attribute name="xpath" use="required"> <xs:simpleType> <xs:annotation> <xs:documentation>A subset of XPath expressions for use in selectors</xs:documentation> <xs:documentation>A utility type, not for public use</xs:documentation> </xs:annotation> <xs:restriction base="xs:token"> <xs:annotation> <xs:documentation>The following pattern is intended to allow XPath expressions per the following EBNF: Selector ::= Path ( '|' Path )* Path ::= ('.//')? Step ( '/' Step )* Step ::= '.' | NameTest NameTest ::= QName | '*' | NCName ':' '*' child:: is also allowed </xs:documentation> </xs:annotation> <xs:pattern value="(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c *:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/ (((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*"> </xs:pattern> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> In particular, note the following annotations: <xs:documentation>A subset of XPath expressions for use in selectors</xs:documentation> <xs:documentation>A utility type, not for public use</xs:documentation> So, the wssg WSDL probably should not even be using the xs:selector type at all. But if you do want to continue using that type, I found the following modification to the wsdl does the trick: <xsd:element name="ServiceGroupRP"> <xsd:complexType> <xsd:sequence> <xsd:element ref="wssg:MembershipContentRule" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="wssg:Entry" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:unique name="UniqueInterfaces"> <xsd:selector xpath="wssg:MembershipContentRule"/> <-------(mod) <xsd:field xpath="@MemberInterface"/> </xsd:unique> </xsd:element>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]