- From: Philippe Le Hegaret <plh@w3.org>
- Date: Fri, 12 Jan 2007 10:24:12 -0500
- To: www-ws-desc <www-ws-desc@w3.org>
Using EBNF, the grammar to be applied to the Infoset value of http:location is: httpLocation ::= CharData? (( openBrace | closeBrace | elementName ) CharData?)* CharData ::= [^{}]* openBrace ::= '{{' closeBrace ::= '}}' elementName ::= '{' QName '}' The lexical space of QName is defined in the namespace specification and is also equivalent to xsd:QName. I believe we only support element declarations with namespaces so this explains the use QName instead of Name. This gives the following results (same as Jonathan's, with an additional one): "{town}" > {town} > "Paris" "{{town}}" > {{,town,}} > "{town}" "{{{town}}}" > {{,{town},}} > "{Paris}" "{{{{town}}}}" > {{,{{,town,}},}} > "{{town}}" "{{town}" > {{,town,} > ERROR "{{{town}" > {{,{town} > "{Paris" "{town}}" > {town},} > ERROR "{town}}}" > {town},}} > "Paris}" "{t{o}wn}" > {t{o}wn} > ERROR I believe this is an LR(k) grammar by the way, with an unlimited k (QName is unlimited). It's possible k could be bounded to 1 by adding more states but we don't need to worry about that here. Now, unless I missed a sentence or two in the specifications, here are two questions: With: "{town}" > {town} > "Paris" "{tr:town}" > {tr:town} > "Paris" What are the namespaces associated with "town" or "tr:town"? We store {http location} in the content model as an xs:anyURI but we don't keep the namespaces in scope around despite the fact that further processing might need them to resolve the qnames. Should we clarify that namespace resolution is done according to the namespaces in scope and/or add a property to keep those namespaces in scope around? By just using the MessageTest-1G defines the following: <xs:schema elementFormDefault="qualified" xmlns:xsmt="http://example.org/message-test/xsd"> <xs:element name="EchoInt" type="xsmt:intStruct"/> <xs:complexType name="intStruct"> <xs:sequence> <xs:element name="int" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:schema> [...] <interface> <operation name="EchoInt" style="http://www.w3.org/2006/01/wsdl/style/iri"> <input element="xsmt:EchoInt"/> <output element="xsmt:echoIntReturn"/> </operation> </interface> [...] <binding> <operation ref="tns:EchoInt" wsoap:action="http://example.org/message-test/action/EchoInt" whttp:location="?op=EchoInt;int={int};" /> </binding> Shouldn't it be {xsmt:int} instead? Philippe
Received on Friday, 12 January 2007 15:24:25 UTC