[XSLT] Attribute met namespace selecteren

Pagina: 1
Acties:

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Topicstarter
Ik probeer om met een XSLT bestand een XSD bestand om te vormen naar een Java bestand.

Nu probeer ik met de volgende xslt code:
code:
1
2
3
    <xsl:for-each select="xsd:element/xsd:complexType/xsd:all/xsd:element">
        private DataColumn column<xsl:value-of select="@codegen:typedName"/> = null;
    </xsl:for-each>


het volgende xsd schema om te vormen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema id="WoningzoekendeDataSet"
xmlns:codegen="urn:schemas-atlantis-org:xml-tprop"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tdata="urn:schemas-atlantis-org:xml-tdata">
    <xsd:element name="Woningzoekende" codegen:typedName="Woningzoekende" codegen:typedPlural="Woningzoekendes">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="wz_id" type="xsd:int" codegen:typedName="WzId"></xsd:element>
        </xsd:all>
    </xsd:complexType>
</xsd:element>
</xsd:schema>


Maar ik krijg wel in deze context de name attribuut of het type attribuut te pakken, maar niet het codegen:typedName attribuut.
Weet iemand hoe ik dit te pakken krijg?

[edit]
Dat was een copieer foutje. Ik was een aantal dingen aan het uitproberen geweest en had de verkeerde gecopieerd. Toch bedankt voor je reactie, maar nog andere opties?

[ Voor 34% gewijzigd door Nick_S op 15-11-2004 12:48 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Misschien moet je de $ vervangen door een @ voor de attribuutnaam.

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Topicstarter
Hier maar even een kleine kick.

Ik heb gister de hele dag zitten rommelen met verschillende parsers, google, xslt etc,. maar het is nog steeds niet gelukt.

Kan iemand mij vertellen of je uberhaubt wel meerdere namespaces in een xsd bestand mag hebben? Volgens de w3c validator is m'n xsd goed.

Als iemand licht op deze zaak kan werpen, gaarne!

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Kopieerfoutje kan gebeuren. Ik vermoed dat je de namespaces niet specificeert in de XSLT, want dit werkt gewoon! Getest in XML Spy

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema id="WoningzoekendeDataSet" xmlns:codegen="urn:schemas-atlantis-org:xml-tprop" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:tdata="urn:schemas-atlantis-org:xml-tdata">
    <xsd:element name="Woningzoekende" 
    codegen:typedName="Woningzoekende" 
    codegen:typedPlural="Woningzoekendes">
        <xsd:complexType>
            <xsd:all>
                <xsd:element name="wz_id" type="xsd:int" 
                codegen:typedName="WzId"/>
            </xsd:all>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>



code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:codegen="urn:schemas-atlantis-org:xml-tprop" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:tdata="urn:schemas-atlantis-org:xml-tdata">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="xsd:schema">
        <xsl:for-each 
        select="xsd:element/xsd:complexType/xsd:all/xsd:element">
        private DataColumn column<xsl:value-of select="@codegen:typedName"/> = null;
    </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>



C#:
1
private DataColumn columnWzId = null; 

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 10-05 16:41

Nick_S

++?????++ Out of Cheese Error

Topicstarter
Hartstikke bedankt. Dit voorbeeld werkt bij mij ook. (Stylus Studio) We gaan het uitbouwen, net zolang tot het breekt. (Daar zit het dan dus fout).

Jullie horen van mij!

[update]
Het is me gelukt! Er stonden voor namespace 'codegen' in de xsd en de xsl twee verschillende URN gedefinieerd. Heerlijk als je daarop foutmeldingen zou krijgen. :P

Ach ja, het was m'n eerste kennismaking met XSLT. Omschrijven van oude code naar een nieuw project met dus nieuwe namespaces URN's.

[ Voor 48% gewijzigd door Nick_S op 16-11-2004 11:29 ]

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'