xsl-list
[Top] [All Lists]

[xsl] Processing schema attributes with leading zeros?

2012-10-19 10:49:28
I have the following elemnt content:
      <issdate year="2012" month="06" day="15"/>

When I process it with the following templates I get this result:
      <issueDate year="2012" month="6" day="15"/>

I'm trying to understand is why the leading 0 on the month was stripped.

The schema has this definition:
    <xs:element name="issdate" type="issdateType"/>
    <xs:complexType name="issdateType">
        <xs:attributeGroup ref="DATE"/>
    </xs:complexType>
    <xs:attributeGroup name="DATE">
        <xs:attribute ref="year" use="required"/>
        <xs:attribute ref="month" use="required"/>
        <xs:attribute ref="day" use="required"/>
    </xs:attributeGroup>
    <xs:attribute name="year" type="YEAR"/>
    <xs:simpleType name="YEAR">
        <xs:restriction base="xs:gYear">
            <xs:pattern value="\d{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:attribute name="month" type="MONTH"/>
    <xs:simpleType name="MONTH">
        <xs:restriction base="xs:positiveInteger">
            <xs:maxInclusive value="12"/>
            <xs:pattern value="\d{2}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:attribute name="day" type="DAY"/>
    <xs:simpleType name="DAY">
        <xs:restriction base="xs:positiveInteger">
            <xs:maxInclusive value="31"/>
            <xs:pattern value="\d{2}"/>
        </xs:restriction>
    </xs:simpleType>

This is processed with a template that has this:

<xsl:template mathc="issdate">

<!-- code to map old names to new names and set $newName removed, in this
case
    issdate is mapped to issueDate
-->

<xsl:element name="{$newName}">
<xsl:call-template name="processAttributes"/>
        <xsl:apply-templates/>

</xsl:element>
</xsl:template>


<xsl:template name="prosessAttributes">
<xsl:for-each select="@*">
      <!-- code to rename attributes removed -->
        <xsl:attribute name="{name()}" select="."/>
</xsl:for-each>
</xsl:template>

So basically my code is renaming the element and then just copying the
attribute values through for this particular element. Why am I loosing the
leading 0? I'd really like to avoid having to know what the content might
be in all casses for attributes.

..dan


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


<Prev in Thread] Current Thread [Next in Thread>