It is an internal Java class -- probably not a good idea to be mucking around with it. You can define your own custom layout class if you'd like.With that said, what are you trying to achieve?
I think there may be some confusion around creating custom layout. What exactly is the requirement?If all you are trying to do is just create a new custom page type (XSL) then you do NOT need to define the Java class for it and you can re-use the OOTB Java class as it is. Custom page type XSL defines the overall page structure vs the Java class defines how the <div> tags (in other cases table tags, etc.) are created within the page to wrap the components.Not to say that you may not have that requirement but I haven't seen a need ever to write your own custom Java class. You can totally create your own Java class but the OOTB one is fairly fine-tuned. OOTB you get Java class for div, table, rss, etc. I think there are 4 of them.
xsl:variable name="ComponentID" select="ContainerProperties/@ComponentID"/
What is the end goal of trying to tune out that ID?
1. Are you seeing the problem of double headers/footers with OOTB layout? Or with custom layout?
2. Did you create the custom layout to specifically address that problem or you created custom layout for some different need?
3. Are you trying to process the DOM after the page loads and remove the component based on that ID?
4. Do you have any page/site level controllers on the page that you are trying this on that maybe injecting / processing HTML?
...I tried to solve this issue using component id but as component id of component is not unique in every page so i think it is not a good coding standard...... That's why I was asking about "ContainerProperties/@ComponentID "element. ...