[xquery-talk] Delete in xquery

Michael Rys mrys at microsoft.com
Thu May 19 10:16:33 PDT 2005


Some implementations also follow an earlier syntax first proposed by
Dana, Don, Jonathan and myself and then implemented in a master thesis
in Germany. Examples are Tamino, SQL Server 2005 where you can say:

delete doc("foo.xml")//wsdl:binding

or 

delete //wsdl:binding 

depending on whether the document is implicitly bound (as in SQL Server)
or explicitly referenced.

Also note, that this expression is doing an update to stored data and is
not a projection expression (functionality that is related to updates
and part of the XQuery Update Requirements).

Best regards
Michael

> -----Original Message-----
> From: talk-bounces at xquery.com [mailto:talk-bounces at xquery.com] On
Behalf
> Of Jason Hunter
> Sent: Thursday, May 19, 2005 9:05 AM
> Cc: 'santosh subrahmanya'; talk at xquery.com
> Subject: Re: [xquery-talk] Delete in xquery
> 
> Although XQuery hasn't formalized a standardized update capability,
most
> vendors have added delete mechanisms.  For example, in Mark Logic you
> can use the xdmp:node-delete() function:
> 
> xdmp:node-delete(doc("foo.xml")//wsdl:binding)
> 
> (Bind the wsdl namespace prefix first of course.  And if you might get
> more than one match to the XPath, use a FLWOR to iterate and
> node-delete() each item individually.)
> 
> http://xqzone.marklogic.com/pubs/2.2/apidocs/UpdateBuiltins.html
> 
> -jh-
> 
> Michael Kay wrote:
> > Please avoid including pictures in your mail - it causes a security
> > warning and could dissuade some people from replying.
> >
> > XQuery does not currently have an update capability. The way you
delete
> > something from a document is to copy everything in the source except
the
> > thing you want to delete. This is not actually that easy to achieve
-
> > it's an example of something that XSLT does a lot better. But you
can do
> > it with a recursive function that copies an element by copying all
its
> > children other than the binding element. Last time this question
came up
> > we discovered that you can't do this in a way that guaratees to copy
all
> > the namespaces from the source document - which may or may not be a
good
> > thing in your case.
> >
> > Michael Kay
> > http://www.saxonica.com/
> >
> >
--------------------------------------------------------------------
> ----
> >     *From:* talk-bounces at xquery.com [mailto:talk-bounces at xquery.com]
*On
> >     Behalf Of *santosh subrahmanya
> >     *Sent:* 19 May 2005 12:07
> >     *To:* talk at xquery.com
> >     *Subject:* [xquery-talk] Delete in xquery
> >
> >
> >     Hi,
> >       Is there any way to delete an element from either a wsdl or an
xml
> >     file. suppose I have a wsdl file like this -
> >
> >     <?xml version="1.0" encoding="UTF-8" ?>
> >     <wsdl:definitions targetNamespace="http://faults.samples1"
> >     xmlns="http://schemas.xmlsoap.org/wsdl/"
> >     xmlns:apachesoap="http://xml.apache.org/xml-soap"
> >     xmlns:impl="http://faults.samples1"
> >     xmlns:intf="http://faults.samples1"
> >     xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> >     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >     xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> >     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >     <wsdl:types>
> >     <schema targetNamespace="http://faults.samples1"
> >     xmlns="http://www.w3.org/2001/XMLSchema">
> >     <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
> >     <complexType name="ItemVO">
> >     <sequence>
> >     <element name="itemDesc" nillable="true" type="xsd:string" />
> >     <element name="itemID" type="xsd:int" />
> >     <element name="itemPrice" type="xsd:float" />
> >     <element name="itemQty" type="xsd:int" />
> >     </sequence>
> >     </complexType>
> >     <complexType name="Vector">
> >     <sequence>
> >     <element maxOccurs="unbounded" minOccurs="0" name="item"
> >     type="xsd:anyType" />
> >     </sequence>
> >       </complexType>
> >       <complexType name="AdvanceShipmentNoticeVO">
> >       <sequence>
> >       <element name="consignmentID" type="xsd:int" />
> >       <element name="items" nillable="true" type="impl:Vector" />
> >       <element name="orderID" nillable="true" type="xsd:string" />
> >       <element name="shipmentDate" nillable="true" type="xsd:string"
/>
> >       </sequence>
> >       </complexType>
> >       </schema>
> >       <schema targetNamespace="http://xml.apache.org/xml-soap"
> >     xmlns="http://www.w3.org/2001/XMLSchema">
> >       <import namespace="http://schemas.xmlsoap.org/soap/encoding/"
/>
> >       </schema>
> >       </wsdl:types>
> >       <wsdl:message name="generateShipmentAccuracyDetailsRequest">
> >       <wsdl:part name="resp" type="impl:Vector" />
> >       </wsdl:message>
> >       <wsdl:message name="searchASNResponse">
> >       <wsdl:part name="searchASNReturn" type="xsd:string" />
> >       </wsdl:message>
> >       <wsdl:message name="generateASNResponse">
> >       <wsdl:part name="generateASNReturn" type="xsd:string" />
> >       </wsdl:message>
> >       <wsdl:message name="generateASNRequest">
> >       <wsdl:part name="in" type="impl:AdvanceShipmentNoticeVO" />
> >       </wsdl:message>
> >       <wsdl:message name="generateShipmentAccuracyDetailsResponse">
> >       <wsdl:part name="generateShipmentAccuracyDetailsReturn"
> >     type="xsd:string" />
> >       </wsdl:message>
> >       <wsdl:message name="searchASNRequest">
> >       <wsdl:part name="asnID" type="xsd:string" />
> >       </wsdl:message>
> >       <wsdl:portType name="AdvanceShipmentws">
> >       <wsdl:operation name="generateASN" parameterOrder="in">
> >       <wsdl:input message="impl:generateASNRequest"
> >     name="generateASNRequest" />
> >       <wsdl:output message="impl:generateASNResponse"
> >     name="generateASNResponse" />
> >       </wsdl:operation>
> >       <wsdl:operation name="searchASN" parameterOrder="asnID">
> >       <wsdl:input message="impl:searchASNRequest"
> >     name="searchASNRequest" />
> >       <wsdl:output message="impl:searchASNResponse"
> >     name="searchASNResponse" />
> >       </wsdl:operation>
> >       <wsdl:operation name="generateShipmentAccuracyDetails"
> >     parameterOrder="resp">
> >       <wsdl:input
message="impl:generateShipmentAccuracyDetailsRequest"
> >     name="generateShipmentAccuracyDetailsRequest" />
> >       <wsdl:output
> >     message="impl:generateShipmentAccuracyDetailsResponse"
> >     name="generateShipmentAccuracyDetailsResponse" />
> >       </wsdl:operation>
> >       </wsdl:portType>
> >       <wsdl:binding name="AdvanceShipmentNoticeWSSoapBinding"
> >     type="impl:AdvanceShipmentws">
> >       <wsdlsoap:binding style="rpc"
> >     transport="http://schemas.xmlsoap.org/soap/http" />
> >       <wsdl:operation name="generateASN">
> >       <wsdlsoap:operation soapAction="" />
> >       <wsdl:input name="generateASNRequest">
> >       <wsdlsoap:body
> >     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> >     namespace="http://faults.samples1" use="encoded" />
> >       </wsdl:input>
> >       <wsdl:output name="generateASNResponse">
> >       <wsdlsoap:body
> >     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> >     namespace="http://faults.samples1" use="encoded" />
> >       </wsdl:output>
> >       </wsdl:operation>
> >       <wsdl:operation name="searchASN">
> >       <wsdlsoap:operation soapAction="" />
> >       <wsdl:input name="searchASNRequest">
> >       <wsdlsoap:body
> >     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> >     namespace="http://faults.samples1" use="encoded" />
> >       </wsdl:input>
> >       <wsdl:output name="searchASNResponse">
> >       <wsdlsoap:body
> >     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> >     namespace="http://faults.samples1" use="encoded" />
> >       </wsdl:output>
> >       </wsdl:operation>
> >       <wsdl:operation name="generateShipmentAccuracyDetails">
> >       <wsdlsoap:operation soapAction="" />
> >       <wsdl:input name="generateShipmentAccuracyDetailsRequest">
> >       <wsdlsoap:body
> >     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> >     namespace="http://faults.samples1" use="encoded" />
> >       </wsdl:input>
> >       <wsdl:output name="generateShipmentAccuracyDetailsResponse">
> >       <wsdlsoap:body
> >     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> >     namespace="http://faults.samples1" use="encoded" />
> >       </wsdl:output>
> >       </wsdl:operation>
> >       </wsdl:binding>
> >       <wsdl:service name="AdvanceShipmentwsService">
> >       <wsdl:port binding="impl:AdvanceShipmentNoticeWSSoapBinding"
> >     name="AdvanceShipmentNoticeWS">
> >       <wsdlsoap:address
> >
>
location="http://localhost:7001/scemaws/services/AdvanceShipmentNoticeWS
"
> >     />
> >       </wsdl:port>
> >       </wsdl:service>
> >       </wsdl:definitions>
> >
> >             How do I delete the binding element from this file.
> >
> >     Regards
> >     Santosh Subrahmanya
> >
> >
> >
> >     <http://clients.rediff.com/signature/track_sig.asp>
> >
> >
> >
------------------------------------------------------------------------
> >
> > _______________________________________________
> > talk at xquery.com
> > http://xquery.com/mailman/listinfo/talk
> _______________________________________________
> talk at xquery.com
> http://xquery.com/mailman/listinfo/talk



More information about the talk mailing list