[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]