Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
 

Go Back   XSL - XML - RSS Forums > XSLForum: Main > XSL-XSD-XML and more

Tags:



Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 09-05-2008, 12:33 PM
Arndt Jonasson
 
Posts: n/a

Default Distinguish between empty string and no children, in XPath 2?




Let's say we have a schema (maybe expressed in XML Schema, but not
necessarily so), that allows this instance document:

<top>
<txt>This is text</txt>
<books>
<book>Tarzan</book>
<book>Harry Potter</book>
</books>
</top>

The text /top/txt may be empty, and the element /top/books may have no
children, so this instance document is also allowed:

<top>
<txt/>
<books/>
</top>

I now want to write an XPath expression that selects all nodes that do
not have children in the schema. It would always select /top/txt and
it would never select /top/books, even in the second example above.

With XPath 1.0, this is not possible, since schema information is not
used there. But can it be done in XPath 2.0? I find the standard
document a bit forbidding, although I'm fairly well acquainted with
the 1.0 document.

We would like to add such capability to the XPath 1.0 implementation
in our application (which does have access to the schema), and if
XPath 2.0 offers a way to express it, it seems best not to reinvent
anything, hence this question.

Reply With Quote
Sponsored Links
  #2 (permalink)  
Old 09-05-2008, 01:02 PM
Martin Honnen
 
Posts: n/a

Default Re: Distinguish between empty string and no children, in XPath 2?

Arndt Jonasson wrote:
> Let's say we have a schema (maybe expressed in XML Schema, but not
> necessarily so), that allows this instance document:
>
> <top>
> <txt>This is text</txt>
> <books>
> <book>Tarzan</book>
> <book>Harry Potter</book>
> </books>
> </top>
>
> The text /top/txt may be empty, and the element /top/books may have no
> children, so this instance document is also allowed:
>
> <top>
> <txt/>
> <books/>
> </top>
>
> I now want to write an XPath expression that selects all nodes that do
> not have children in the schema. It would always select /top/txt and
> it would never select /top/books, even in the second example above.
>
> With XPath 1.0, this is not possible, since schema information is not
> used there. But can it be done in XPath 2.0? I find the standard
> document a bit forbidding, although I'm fairly well acquainted with
> the 1.0 document.


Even in the XSLT 2.0 data model the txt element has a child node, it is
a text child node. So your description of saying does not have "children
in the schema" is not very precise. Are you looking for elements which
have a simple type in the meaning of the W3C schema language, meaning
they have no child _elements_ and no attributes? I am not sure whether
schema aware XSLT 2.0 allows you do detect elements which have a simple
type respectively do distinguish in your stylesheet between elements
having a simple type and those having a complex type. As far as I know
all you can do is match an element based on its type and validate input
or output elements based on a schema.

You might want to ask on the XSL mailing list
http://www.mulberrytech.com/xsl/xsl-list/, spec writers and implementors
like Michael Kay are regulars there so you should get a more qualified
answer there than here.



--

Martin Honnen
http://JavaScript.FAQTs.com/
Reply With Quote
  #3 (permalink)  
Old 09-05-2008, 01:24 PM
Arndt Jonasson
 
Posts: n/a

Default Re: Distinguish between empty string and no children, in XPath 2?

On Sep 5, 2:00 pm, Martin Honnen <mahotr...@yahoo.de> wrote:

> Even in the XSLT 2.0 data model the txt element has a child node, it is
> a text child node. So your description of saying does not have "children
> in the schema" is not very precise. Are you looking for elements which
> have a simple type in the meaning of the W3C schema language, meaning
> they have no child _elements_ and no attributes?


Yes, I mistakenly left out the word "element".

> You might want to ask on the XSL mailing listhttp://www.mulberrytech.com/xsl/xsl-list/, spec writers and implementors
> like Michael Kay are regulars there so you should get a more qualified
> answer there than here.


Thanks, I'll try there.
Reply With Quote
  #4 (permalink)  
Old 09-07-2008, 05:57 AM
Dimitre Novatchev
 
Posts: n/a

Default Re: Distinguish between empty string and no children, in XPath 2?


"Arndt Jonasson" <arndt.jonasson@gmail.com> wrote in message
news:3d8ef72b-e938-482d-9c1c-43583584331a@z66g2000hsc.googlegroups.com...
>
> Let's say we have a schema (maybe expressed in XML Schema, but not
> necessarily so), that allows this instance document:
>
> <top>
> <txt>This is text</txt>
> <books>
> <book>Tarzan</book>
> <book>Harry Potter</book>
> </books>
> </top>
>
> The text /top/txt may be empty, and the element /top/books may have no
> children, so this instance document is also allowed:
>
> <top>
> <txt/>
> <books/>
> </top>
>
> I now want to write an XPath expression that selects all nodes that do
> not have children in the schema. It would always select /top/txt and
> it would never select /top/books, even in the second example above.
>


This is possible in XPath 2.0 if the schema has separate types for all cases
of element that must not have children-elements.

Then one can use the so called ElementTest, which is defined in the
following way:

ElementTest ::= "element" "(" (ElementNameOrWildcard (","
TypeName "?"?)?)? ")"


One of the possible XPath 2.0 expressions will be something like the
following:

//element(*,Type1) | //element(*,Type2) | ... |
//element(*,TypeN)


where Type1, Type2, ..., typeN are all the schema types that define
elements that cannot have children-elements.

Probably substitution groups can be used so that all types above can be
derived from a single abstract type, let's say "ChildlessElement".

Then the expression would be simply:

//element(*,ChildlessElement)


Of course, to be able to evaluate such XPath 2.0 expressions one must have a
full-blown XPath 2.0 implementation (either a Schema-Aware XSLT 2.0
processor, or an XQuery processor)

For more information see the XPath 2.0 spec:

http://www.w3.org/TR/xpath20/#doc-xpath-ElementTest

http://www.w3.org/TR/xpath20/#id-element-test


Cheers,
Dimitre Novatchev









Reply With Quote
  #5 (permalink)  
Old 10-04-2008, 02:09 AM
Junior Member
 
Join Date: Oct 2008
Location: Zimbabwe
Posts: 1

Send a message via ICQ to lyroilsonvaliv
Default japanese amateur girls wra

Gay



Teen amateur audition
Wild teen sex orgy
Teens fucking
Teen dating guide
Free teen lesbian porn clip
Teens for cash porn
Black cock sucking teen
Hard fuck teenager
Big busty cock teen
Hot teen lesbian sex
Hairy asian teen blowjobs
Amateur teen giving blow job
Bathroom porn teen
Dirty teen lesbian
Adult teen sex pic
Latina movie porn teen
Teens pornos
Dirty old man fuck teen
Asia exploited free pic porn teen
Free picture sex teen tgp

fuck genteelly patricia shemale
ass chick chunky fat fuck
pussy fucking video clip
stripper blowjob
fuck your vans remix
hot tub fucking
amateur young woman
fuckable foot
ebony fuck tranny
collegefuckfest com passwords
sweaty fucking
latina lesbian teen
carol cox amateur
ads dallas lesbian texas want
lesbian sperm
amateur gallery nudist picture
jandj amateur
fuck gang wife
brandy lesbian taylor
fucking biches
__________________
three way fucking
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



Contact Us -|- XSL - XML - RSS Forums -|- Archive -|- Top -|-Rules/Disclaimer-|-Help/Support -|-Advertise
© Camley Interactive (camley.info) 2008 - all logos and images are copywrite their respective owners.
Proud member of the Camley Interactive Network
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.
All times are GMT. The time now is 10:17 PM.
Style Developed by Epic Designz