I am using XSL to transform my xmls. Now there are two things to be done for my page that needs to go to my meta data tags
Here is my XML structure:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="model.xsl"?>
<model
TYPE="logical"
MDL_ID="1">
<MDL_NM>
<![CDATA[FDW Model]]>
</MDL_NM>
<MDL_BUS_AREA_NM>
<![CDATA[Global Finance - FINFDW]]>
</MDL_BUS_AREA_NM>
<MDL_DESC_TX>
<![CDATA[Example description text goes here]]>
</MDL_DESC_TX>
<entities>
<entity
ENT_DEPN_TYPE_CD="1"
ENT_LOGIC_ONLY_IN="Y"
ENT_ID="1"
MDR_STS_CD="Active"
MDR_VER_ID="0.1">
<ENT_NM>
<![CDATA[ACCESS_LOG]]>
</ENT_NM>
<ENT_BUS_AREA_NM>
<![CDATA[Chase Card Services - CARD]]>
</ENT_BUS_AREA_NM>
<MDL_NM>
<![CDATA[FDW Model]]>
</MDL_NM>
<ENT_DESC_TX>
<![CDATA[This table logs to user access changes. Whenever access is granted or revoked from a user an entry is logged into this table ]]>
</ENT_DESC_TX>
<ENT_NOTE_1 seq="0">
<![CDATA[Entity 0 note 0]]>
</ENT_NOTE_1>
<ENT_NOTE_2 seq="1">
<![CDATA[Entity 0 note 1]]>
</ENT_NOTE_2>
<ENT_NOTE_3 seq="2">
<![CDATA[Entity 0 note 2]]>
</ENT_NOTE_3>
<attributes>
<attribute
ATTR_LOGIC_ONLY_IN="Logica
l/Physical
both"
ALOW_VALUE_MAX_VALUE_TX="1
00"
ALOW_VALUE_MIN_VALUE_TX="1
0"
ATTR_PK_IN="Y"
ATTR_FK_IN="Y"
DATA_DOMN_GNRL_DATA_TYPE="
tt"
DATA_DOMN_PREC_SIZE_CT="1"
ATTR_RQR_IN="Y"
ATTR_ID="1"
ENT_ID="1"
BUS_ELE_ID="1"
DATA_DOMN_ID="1" >
<ENT_NM>
<![CDATA[FDW Model]]>
</ENT_NM>
<MDL_NM>
<![CDATA[FDW Model]]>
</MDL_NM>
<ATTR_NM>
<![CDATA[Attribute 0]]>
</ATTR_NM>
<BUS_ELE_NM>
<![CDATA[Business Element Name]]>
</BUS_ELE_NM>
<ATTR_BUS_AREA_NM>
<![CDATA[Global Finance - FINFDW]]>
</ATTR_BUS_AREA_NM>
<DATA_DOMN_NM>
<![CDATA[mod domain]]>
</DATA_DOMN_NM>
<DATA_DOMN_DESC_TX>
<![CDATA[Data Domain Description]]>
</DATA_DOMN_DESC_TX>
<ATTR_NOTE_TX>
<![CDATA[Entity 0 Attribute 0 Note]]>
</ATTR_NOTE_TX>
<ATTR_DESC_TX>
<![CDATA[access log id is a surrogate key for the access table. This is an integer key that is sequentially assigned as needed for this dimension. That is, it is not a smart key in any way. Also known as artificial key, integer key, meaningless key, nonnatural key and synthetic key. This attribute uniquely identifies a row in the associated dimension.]]>
</ATTR_DESC_TX>
<related.valid.values>
<related.valid.value
ALOW_VALUE_CD="ccc" ALOW_VALUE_DFLT_IN="N" ALOW_VALUE_EFF_DT="1999-02
-03-16.20.
38.428000"
ALOW_VALUE_END_DT="1999-02
-03-16.20.
38.428000"
>
<ALOW_VALUE_NM>
<![CDATA[Attribute 0 valid value]]>
</ALOW_VALUE_NM>
<ALOW_VALUE_DESC_TX>
<![CDATA[Attribute 0 valid value Description]]>
</ALOW_VALUE_DESC_TX>
</related.valid.value>
</related.valid.values>
<related.table.columns>
<related.table.column
TBL_ID="1"
COL_ID="1"
TBL_COL_FK_IN="true"
DATA_TYPE_NM="INTEGER"
COL_DATA_LEN_CT="length"
COL_PREC_LEN_CT="precision
"
TBL_COL_PK_IN="true"
TBL_COL_RQR_IN="true"
DATA_DOMN_ID="1"
MDL_ID="1">
<COL_NM>
<![CDATA[accs_log_id]]>
</COL_NM>
<TBL_NM>
<![CDATA[ACCS_LOG]]>
</TBL_NM>
<DATA_DOMN_NM>
<![CDATA[mod domain]]>
</DATA_DOMN_NM>
</related.table.column>
</related.table.columns>
</attribute>
</attributes>
</entity>
</entities>
</model>
1. First thing is I have to extract all entity names i.e. under <entity> node
<ENT_NM>
<![CDATA[ACCESS_LOG]]>
</ENT_NM>
and the important thing is I should take only the unique values
2. Second one is again on the entity name, I should print the begining letter of all entity name which I am already doing, but its again, I should print only the unique alphabets. For example, if there are two antity whose starting letter is "A", it should print only once.
Please help
Start Free Trial