[Home] [By Thread] [By Date] [Recent Entries]

  • To: "Jonathan Robie" <jonathan.robie@d...>,"Mike Champion" <mc@x...>,<xml-dev@l...>
  • Subject: RE: RE: XQuery and DTD/Schema?
  • From: "Dare Obasanjo" <dareo@m...>
  • Date: Sat, 6 Jul 2002 11:26:51 -0700
  • Thread-index: AcIlGJzFEh/LpUZHR46XNgw7/WbUFgAAMoCE
  • Thread-topic: RE: XQuery and DTD/Schema?

It's not the same thing. That's like saying 
 
void MyMethod(object obj){
 
 if(obj is MyClass)
   DoStuff((MyClass) obj) 
 
}
 
is the same as 
 
void MyMethod(MyClass mc){
    DoStuff(mc); 
}
 
<personal-aesthetic-opinion>
I'd rather if element as a parameter type disappeared and instead xs:anySimpleType or xs:anyType were used its place for more consistency but I doubt this will ever happen. :( 
</personal-aesthetic-opinion>
 
As for error handling, I pray it isn't a structured exception handling/try-catch proposal that makes it into the WD. I can't even imagine the concept of using try...catch in XQuery with a straight face. Then again, validate() made it into one of the XPath 2.0 working drafts so I guess anything is possible. 
 

	-----Original Message----- 
	From: Jonathan Robie [mailto:jonathan.robie@d...] 
	Sent: Sat 7/6/2002 11:11 AM 
	To: Dare Obasanjo; Mike Champion; xml-dev@l... 
	Cc: 
	Subject: RE: RE:  XQuery and DTD/Schema?
	
	

	At 03:00 PM 7/3/2002 -0700, Dare Obasanjo wrote:
	 > Mike Champion wrote:
	> > I can think of lots of scenarios where I would want my
	> > get-total() function to
	> > process the  "merely well-formed elements whose name happens
	> > to be 'invoice'".
	> >
	>
	>I agree. I am both dissappointed and stunned that such functionality
	>does not exist in XQuery.
	
	Since at least two people seem to think this is true, let me show how you
	would do this in XQuery:
	
	define function get-total( element $i )
	   returns xs:decimal
	{
	         sum( $i//item/price )
	}
	
	I didn't say 'element invoice' in the parameter declaration, because that
	requires that the element conform to the globally defined element named
	'invoice'. If I want to make sure that the element has the appropriate
	name, I can test the name:
	
	define function get-total( element $i )
	   returns xs:decimal
	{
	         if (local-name( $i ) = 'invoice')
	           then sum( $i//item/price )
	           else <error>Not an invoice!!!</error>
	}
	
	We will have better ways of handling errors in the next Working Drafts.
	
	Jonathan
	
	


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member