XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> + Conerting Excel to XML (5)
-> + count the number of 1 appearin... (10)
-> + Import validation errors (2)
-> + Custom Validation Saxon (4)
-> + How Can i Check if else condit... (2)
-> + Stylus Studio 2009 Ent still b... (2)
-> + cannot download SS2009 (2)
-> + Use of import-schema wants sch... (4)
-> + Replacement Install Media/Bits (3)
-> + XML to Flat File (5)
-> - Select one of multiple attribu... (13)
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> ->Select one of multiple at...
-> + Web Service - SOAP Error (3)
-> + I find a BUG in stylus studio ... (8)
-> + Text to XML conversion issue (2)
-> + Fixed width flat files (3)
-> + Stylus Studio Crashes when val... (3)
-> + XSL Changes doesn't reflect in... (2)
-> + Custom Conversion Definition T... (6)
-> + Support for UK EDI Tradacoms ... (2)
-> + How to find and remove all ins... (2)
-> + XML to cobol Sequential file (2)
-> + Pipe delimited flat file conve... (2)
-> + Cannot Function Block > DataDi... (3)
-> + License Authentication failed (2)
-> + Flat File Conversion (3)
-> + Struzzo.exe sing 50% of CPU (2)
-> + Saxon9 Transformation error ha... (2)
-> + com.ddtek.xquery3.XQQueryExcep... (10)
-> + XML attribute name (2)
-> + JAVA and XML (2)
-> + DB Connection Error (3)
-> + Dicstionaty Librarys for other... (2)
-> + Passing parameters (3)
-> + Xmlconverter does not work (2)
-> + non-printing characters in Fil... (3)
-> + Including row nos while conve... (5)
-> + Getting Evaluation Copy except... (2)
-> + SS 2008 R2 Bug? (4)
-> + Java Heap Space (2)
-> + generate report from .xsl file... (3)
-> + Can't encode 0x4 in text (3)
-> + Recognize Japanese Characters (2)
-> + converting .xsl to xml using c... (2)
-> - Uninstall doesn't clean up reg... (1)
-> + CDISC (5)
-> - creating database from XML sch... (1)
-> + error: side-by-side configurat... (3)
-> - How to convert pdf into rdf fo... (1)
-> + Apache FOP (5)
-> + XPath Query Editor 'Buggy' (3)
-> - Feature request (1)
-> + XML Convertors (2)
-> + XMLConverters version 3.2.0.0 ... (2)
-> + JVM/stylus studio abort on sav... (3)
-> + using oasis catalog in pipelin... (6)
-> + Another whitespace issue with ... (2)
-> + saxon 9.1.0.2 (2)
-> + xslt change namespace (4)
-> - xslt change namespace (1)
-> + HL7 Conversion (3)
-> + mixed content mapping (2)
-> + HL7 to XML to HL7 (5)
-> + newest version of Saxon SA? (3)
-> + ORM / ORU Seqments (7)
-> + XSLT is causing Java.lang OutO... (3)
-> + Create POJOs from EDI (4)
-> - Embedded message (1)
-> + How to create Documentation fo... (2)
-> + xslt transformation (2)
-> - remove BOM (1)
-> + Changing data as it goes into... (5)
-> + How to (graphically) map one X... (2)
-> + Stylus Studio 2008 Release 2 -... (2)
-> + keyboard shortcuts to switch b... (2)
-> + Help with getting Output XML f... (8)
-> + Document created from schema (2)
-> + XSD Validation error (2)
-> + Set the value of an attribute ... (2)
-> + Saving as XML, Source Data Typ... (2)
-> + Own templates in file/new (4)
-> + Does Stylus Studio support the... (2)
-> - How to transform XML file to T... (1)
-> + Extract XML file from a HTML s... (2)
-> + Crashing, high cpu usage, larg... (6)
-> + Creating an xml document based... (2)
-> + Problem with restriction (2)
-> + EDI Invalid date time error (2)
-> + How to Compose a Web Service C... (5)
-> + Java Complie errors with XML C... (2)
-> + Creating xml file from CSV uss... (4)
-> + XML Converters (6)
-> + schema validation (15)
-> - 9/30 Customer Showcase Webinar... (1)
-> + ETL (2)
-> + xsd:sequence question (3)
-> + contains an invalid path (5)
-> - Custom converter to map flat f... (1)
-> + validating a 4.01 transitional... (2)
-> + Cannot Use Stylus Studio On Mu... (5)
-> + Missing DB to XML option (2)
-- Previous [901-920] [921-940] [941-960] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 08 Dec 2008 03:15 PM
Hi there,

I have in vain tried to map an element's value if its attribute name has a certain value. No luck so far, hope you can help.

XML snippet:
<UserArea><nl:TimeCard><nl:ReportedResource><nl:Person><nl:Id><nl:IdValue>9688259</nl:IdValue></nl:Id><nl:PersonName><nl:LegalName>RWJ GOFFIN</nl:LegalName></nl:PersonName></nl:Person></nl:ReportedResource><nl:ReportedTime><nl:PeriodStartDate>2007-05-28</nl:PeriodStartDate><nl:PeriodEndDate>2007-06-03</nl:PeriodEndDate><nl:TimeInterval type="Regular"><nl:StartDateTime>2007-05-28</nl:StartDateTime><nl:EndDateTime>2007-06-03</nl:EndDateTime><nl:RateOrAmount currency="EUR" type="hourly" multiplier="+100.00"> +22.55</nl:RateOrAmount></nl:TimeInterval></nl:ReportedTime></nl:TimeCard><nl:StaffingAdditionalData><nl:CustomerReportingRequirements><nl:DepartmentName></nl:DepartmentName><nl:CustomerReferenceNumber></nl:CustomerReferenceNumber><nl:AdditionalRequirement requirementTitle="geboortedatum"></nl:AdditionalRequirement><nl:AdditionalRequirement requirementTitle="Postcode Plaats"></nl:AdditionalRequirement><nl:AdditionalRequirement requirementTitle="werkweeknummer">22</nl:AdditionalRequirement><nl:AdditionalRequirement requirementTitle="plaatsingsnummer">003221554</nl:AdditionalRequirement></nl:CustomerReportingRequirements></nl:StaffingAdditionalData></UserArea>

My xsl to map the nl:AdditionalRequirement if the requirementTitle attribute is "plaatsingsnummer":
<xsl:for-each select="a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements">
<Description>
<xsl:choose>
<xsl:when test="a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements/nl:AdditionalRequirement/@requirementTitle = 'plaatsingsnummer'">
<xsl:text>plaatsingsnummer exists</xsl:text>
</xsl:when>
<xsl:otherwise>no plaatsingsnummer</xsl:otherwise>
</xsl:choose>
</Description>
</xsl:for-each>

If I skip the for each I at least get a message "no plaatsingsnummer", but there is one, so how can I map it?

Thanks!


Cynthia

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 08 Dec 2008 03:25 PM
Hi Cynthia,
inside the for-each instruction, your current element is now one of the a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements elements, so the inner test must be done only using nl:AdditionalRequirement/@requirementTitle = 'plaatsingsnummer'.

Alberto

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 08 Dec 2008 04:26 PM
Hi Alberto,

I tried it with the for each round the Description element and inside but then I get no tag at all in the result. Without the for each I at least get a result (no plaatsingsnummer).

I am still doubting the for each though I think I should use it as the nl:AdditionalRequirement can occur multiple times. If I use a straight link in the mapper to see if I at least can see the value of element I also get no result. What am I missing?

Last tested (with the for each inside and around the element):
<xsl:for-each select="a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements">
<xsl:choose>
<xsl:when test="nl:AdditionalRequirement/@requirementTitle = 'plaatsingsnummer'">
<xsl:text>plaatsingsnummer exists</xsl:text>
</xsl:when>
<xsl:otherwise>no plaatsingsnummer</xsl:otherwise> </xsl:choose>
</xsl:for-each>

Grtz,


Cynthia

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 02:46 AM
Hi Cynthia,
if the for-each is not even entering the loop (i.e. if you are not seeing anything by executing the code) it could be that the XPath expression shouldn't start with a:UserArea; can you attach the source XML, and the XSLT code preceding this fragment?

Alberto

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 05:10 AM
Hi Alberto,

Could it be that there is a problem with all nl: prefixed elements, since non of these mapped elements gives a result. The location of the prefix namespace (xmlns:nl="http://ns.hr-xml.org/2004-08-02) does not work, is that the problem?

Attached the files:

Invoice.xsd
InvoiceAdditional.xsd
Finentry.xsl
20080121_114332.100167.4529093.10001.982205.12601217.INVOICE


UnknownZipStylus.zip

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 06:20 AM
Hi Cynthia,
the problem is not with the "nl" prefix, as its URI must not be a valid URL (it could be any string). The problem is that your XML has two levels of Line elements, and your current code is picking the outermost. That is, you have a Line sibling of Header, that has three children, LineNumber, Charges and Line; it's this last Line element the one that has a UserArea element as its last child.
So, probably you should write a recursive algorithm by having a separate template for Line elements; but in case you know you are always dealing with a two-level structure, you can change your XSL to say

<xsl:for-each select="../a:Line/a:Line">
<FinEntryLine>
<xsl:for-each select="a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements">
<Description>
<xsl:choose>
<xsl:when test="nl:AdditionalRequirement/@requirementTitle = 'plaatsingsnummer'">
<xsl:text>plaatsingsnummer exists</xsl:text>
</xsl:when>
<xsl:otherwise>no plaatsingsnummer</xsl:otherwise>
</xsl:choose>
</Description>
</xsl:for-each>


Alberto

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 07:33 AM
Hi Alberto,

This indeed helps! Thanks so far. The below construction works:

<FinEntryLine>
<xsl:for-each select="a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements">
<Description>
<xsl:choose>
<xsl:when test="nl:AdditionalRequirement/@requirementTitle = 'plaatsingsnummer'">
<xsl:text>plaatsingsnummer exists</xsl:text>
</xsl:when>
<xsl:otherwise>no plaatsingsnummer</xsl:otherwise>
</xsl:choose>
</Description>
</xsl:for-each>
</FinEntryLine>

but if I want to capture the tag value itself it gives no result. Can you help me one more time?

<FinEntryLine>
<xsl:for-each select="a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements">
<Description>
<xsl:choose>
<xsl:when test="@requirementTitle = 'plaatsingsnummer'">
<xsl:value-of select="nl:AdditionalRequirement"/>
</xsl:when>
<xsl:otherwise>no plaatsingsnummer</xsl:otherwise>
</xsl:choose>
</Description>
</xsl:for-each>
</FinEntryLine>

Thanks,


Cynthia

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 08:44 AM
Hi Cynthia,
in order to test whether there is an additional requirement named "plaatsingsnummer" you need to use the

<xsl:when test="nl:AdditionalRequirement/@requirementTitle = 'plaatsingsnummer'">

The test is true if there is at least one AdditionalRequirement with an attribute requirementTitle having the "plaatsingnummer" value.

Inside that, if you want to extract the text associated with that requirement, you need to use

<xsl:value-of select="nl:AdditionalRequirement[@requirementTitle = 'plaatsingsnummer']"/>

This will isolate the AdditionalRequirement elements with the desired requirementTitle, and print its text content.

Alberto

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 02:36 PM
Hi Alberto,

Changed the for each a little bit and now it is working if I not use a value of select, but just print a text in the when clause, for instance "plaatsingsnummer". I then correctly get three times "no plaatsingsnummer" and 1 time "plaatsingsnummer". The value of select is still not working though, does it have to do something with the fact that I am already inside the "nl:AdditionalRequirement" tag and I should only select the attribute itself?

<xsl:for-each select="a:UserArea/nl:StaffingAdditionalData/nl:CustomerReportingRequirements/nl:AdditionalRequirement">
<Description>
<xsl:choose>
<xsl:when test="@requirementTitle = 'plaatsingsnummer'">
<xsl:value-of select="nl:AdditionalRequirement[@requirementTitle = 'plaatsingsnummer']"/>
</xsl:when>
<xsl:otherwise>no plaatsingsnummer</xsl:otherwise>
</xsl:choose>
</Description>
</xsl:for-each>
</FinEntryLine>
</xsl:for-each>

Thanks,


Cynthia

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 03:46 PM
Cynthia,
the for-each instruction selects the node identified by its XPath expression as the current node; so, the value-of located inside its scope must not re-navigate to locate it, and can just be <xsl:value-of select="text()"/> (as the filtering was done by the parent xsl:when instruction).

Alberto

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 09 Dec 2008 04:50 PM
Hi Alberto,

I am still progressing, I now moved on to an error about not finding a scema it wants to include. Error text:

---------------------------
Stylus Studio 2008 XML Enterprise Suite Release 2
---------------------------
Error: at xsd:include on line 17 of file:///e:/Klanten/SROL/VOORBE%7E1/InvoiceAdditionalNL.xsd:

Failed to process included schema document ../StaffingOrganization.xsd


URL: file:///e:/Klanten/SROL/VoorbeeldFactuur/20080121_114332.100167.4529093.10001.982205.12601217.INVOICE.xml
Line:15
Col: 38
Jump to location?
---------------------------
Yes No
---------------------------

Now I think I should place the StaffingOrganization.xsd one directory up from the location of InvoiceAdditionalNL.xsd, but it doesn't resolve the error. Could it be because this new schema (StaffingOrganization.xsd) is including itself a few new schema's as well?

Can you help me again? Thanks,


Cynthia

Postnext
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 12 Dec 2008 05:58 AM
Cynthia,
the zip file you provided was already missing a couple of schemas, so I cannot tell which ones you need to fully construct them. You will have to follow the error messages in telling what is missing and where it expects them to be located.

Alberto

Posttop
(Deleted User) Subject: Select one of multiple attributes?
Author: (Deleted User)
Date: 12 Dec 2008 06:15 AM
Hi Alberto,

I fixed this issue by copying the elements from the separate schema's to the main schema.

Thanks for all you help, appreciate it very much!

Cynthia

   
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.