Code refactoring / Indenting

Are there any code refactoring tools available in the new code editor for Flash Professional CC? Sometimes I like to write in pure actionscript, in which case I'll use FlashBuilder. But a lot of times when I work with an artist who makes layouts and assets in Flash Professional, it would be nice to just be able to just work completely in flash without having to switch back and forth to FB.
I like the new fast, streamlined code editor in Flash CC, but it is missing some great tools (as far as I can tell):
From most important to least important:
Refactoring (easily rename methods, properties and references.. This is a big one for me.)
Correct Indentation
Generate Getter / Setter
Organize Imports
I don't need the full robust tool set of Flash Builder, but at least a couple of simple tools would go a long way to making the code editor more powerful.
Thanks!

Are there any code refactoring tools available in the new code editor for Flash Professional CC? Sometimes I like to write in pure actionscript, in which case I'll use FlashBuilder. But a lot of times when I work with an artist who makes layouts and assets in Flash Professional, it would be nice to just be able to just work completely in flash without having to switch back and forth to FB.
I like the new fast, streamlined code editor in Flash CC, but it is missing some great tools (as far as I can tell):
From most important to least important:
Refactoring (easily rename methods, properties and references.. This is a big one for me.)
Correct Indentation
Generate Getter / Setter
Organize Imports
I don't need the full robust tool set of Flash Builder, but at least a couple of simple tools would go a long way to making the code editor more powerful.
Thanks!

Similar Messages

  • Code refactoring

    Hell code refactoring!
    I inhirite a Java application that was written 15 years ago with millions lines of code
    The code has many problems, including some very basic stuff like comparing object using ==. But somehow, it works and the company keeps using it
    The problem we are facing is the code doesn't support debugging. ALL of the methods have very limited number of variables. The coders writting something like this all over places
    if(getA().getB().getC().getD().getE().getM().equals(getA().getB().getC().getD().getE().getN()){
         getA().getB().getC().getD().getE().getM().setZ(getA().getB().getC().getD().getE().getN().getZ());
    int num = getA().getB().getC().getD().getE().getM().getList().size();
    for(int i = 0; i<num; i++){
        getA().getB().getC().getD().getE().getM().getList().get(i).setSomething();;
    It is unbelievable but it is real. Some of them have more than 10 get() on the same line
    I try to refactor it, adding local variables into the methods, so we can resuse the objects instead of using lines of get()
    It also help debugging the code possible because there are many recursive calls plus the above style make it almost impossible now. Whenever something happens, it took me days to figure out what is wrong
    I am going to break the get() chains but since the code base is huge, I don't know if we have some tools availble.
    If someone has solved similar problem, please give me some advice.
    Thank you very much

    2/ The code has many problems, not a single one. but I feel most important is debuggable.
    Well so far you haven't mentioned a single problem with the code. Further, the code sample you posted is 'debuggable'. But, again, you don't need to 'debug' code that works correctly.
    The below is a real function of the code that I renamed all the terms
    What is it about that code that makes you think it is not 'debuggable'?
    You have to pick your battles. You can't try to rewrite/refactor code just because you don't like the way it was written. That is NOT productive.
    Assuming you even have a need to refactor anything the first step is to identify the CRITICAL code sections/elements/classes/methods. Critical either because they are performance issues or critical because they are what keeps breaking.
    There are almost no comments in the code,
    Then, as I already mentioned, the FIRST step is to analyze the code and DOCUMENT IT. You posted a code snippet and said ABSOLUTELY NOTHING about what that method is supposed to be doing. Why not? Why didn't you post a comment? Have you 'analyzed' that code you posted? If not, why not?
    Your analysis should START with the method signature; the parameters and return type. Have you look at that for the sample you posted? If not, why not?
    Do you see anything unusual about it? I do.
    private Double returnCRValue(TsTRatingOperation aetnRatingOperation, String id) throws Exception {  
    Throws Exception? Almost any coded might throw an exception so why does this method just mention a generic exception instead of a specific one.
    The signature declares that the method returns an instance of Double. Does it actually do that?
    BigDecimal dbvalue = null;
    return dbvalue == null ? null : new Double(dbvalue.doubleValue());  
    Why does the method use BigDecimal in the body but then convert the value to a Double for the return? What if that BigDecimal value can't be converted properly to a Double without losing precision? Why isn't the method returning a BigDecimal? Then the caller can perform any conversions that might be necessary.
    The SECOND place to look for issues is the logic flow of the method. Does every IF statement have an ELSE? If not then why not. A common source of bugs is missing ELSE statements that cause code to fall through and work wrong when the IF condition isn't met. Same with CASE/SWITCH statements; big problem with fall through execution if a BREAK statement is missing when it is needed.
    Do you see any logic issues with that code you posted? I do.
            int nPolModTotal = 0;  
            if (aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs() != null) {  
                nPolModTotal = aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs().size();  
            //loop CRs  
            for (int n = 0; n < nPolModTotal; n++) {  
                String sid = aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs().get(n).getCRTypeReferenceCode().trim();  
                if (sid.equals(id.trim())) {  
                    dbvalue = aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs().get(n).getModFactorValue();  
    .. even more, possibly disastrous processing follows
    The value of 'nPolModTotal' is set to zero.
    Then there is an IF statement that MIGHT SET it to a real non-zero value.
    But WHAT IF IT DOESN'T? The rest of the code in the method will still execute. That for loop will escape ok because of its initialization statements but the next FOR loop will still execute. Is that the correct behaviour? I have no way of knowing. But it is certainly suspicious code for the second part to execute and compute a return value when the first part failed to execute.
    I would want to know why the code works that way and if it is correct or a bug waiting to happen.
    Loops of all kinds are also problematic: wrong initialization, wrong termination, unnecessary code within the loop instead of before the loop. Do you see any of the problems in the method you posted? I do.
    //loop CRs    
            for (int n = 0; n < nPolModTotal; n++) {  
                String sid = aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs().get(n).getCRTypeReferenceCode().trim();  
                if (sid.equals(id.trim())) {  
                    dbvalue = aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs().get(n).getModFactorValue();  
    Why does EVERY iteration potentially set (and overwrite) the value of 'dbvalue'?
    If the code is looking for a single match then it should EXIT the loop when it finds it. Why iterate through hundreds or thousands of entries (depending on the value of 'nPolModTotal') if you found your 'sid' on the very first match?
    What if there are two matches for that IF statement above? The value of 'dbvalue' will be set to the LAST ONE found. Is that the correct behaviour?
    There is nothing inherently wrong with those concatenated 'get' operations.  I'm assuming by your comments that you want to 'refactor' this line of code
    aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs()
    by creating an instance variable and capturing that value and then using that instance variable in the following loop?
    myOperationsCRs = aetnRatingOperation.getTsTRatingPASOperationTerm().get(0).getOperationCRs() ;
    for (int n = 0; n < nPolModTotal; n++) {    
                String sid = myOperationsCRs.get(n).getCRTypeReferenceCode().trim();
      Why? Why do you think you should 'refactor' that code and use an instance variable for the intermediate result?
    As I said before if I were you I would forget refactoring the code and focus on:
    1. analyzing what it does
    2. adding appropriate comments and annotations (e.g. for the parameters and return type
    3. identifying any logic issues (as I did above)
    4. researching those logic issues with a possible plan to fix them

  • Legacy code refactoring

    I have inherited a swing Applet project and there's a bunch of dodgy code, once of them is that the first parameter in most of the constructors is an "owner" reference to the Japplet extension.
    Because the code parts are not decoupled it is hard to extract functional units in order to use them for tests, demos or to re-use them in other projects.
    Looking at the code (30 .java modules) about half of the units reference the "owner" to access up to 50 different properties and methods. It's been suggested that I uses the interface segregation principle ("Refactoring: Improving the Design of Existing Code", Martin Fowler) to refactor to use an interface rather than the applet reference.
    Are there any other suggestions on how to reference the Applet in the other Java units without the code being so coupled?
    All comments are appreciated.
    Thanks, Tom.

    I would use interfaces, but I would also look at the code and wonder why 30 classes need to access 50 methods in this monster class. You might be able to move some logical code together or create some utility classes.

  • Code formatting, indenting, and commenting

    This question was posted in response to the following article: http://help.adobe.com/en_US/flashbuilder/using/WSe4e4b720da9dedb5-25a895a612e8e9b8c8e-7fff .html

    MXML code formatting options are very limited in Flash Builder 4.5. Compare that to the vast amount of options you have to format Java code in Eclipse. I would expect more from a proprietary software.

  • My auto-indent and code formatting is not working.

    Usually on dreamweaver CS5.5 my code (html) would indent my <div> tags and align them up with the end div </div>. Not only were the <siv> tags formateed but various of others tags were as well.
    How Dreamweaver used to format my code:
    <head>
              <title>Example</title>
              <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    </head>
    <body>
    <div id="outside_container">
              <div id="container">
                        <a href="#"><img src="images/logo.jpg" id="logo" /></a>
            <ul id="menu">
                      <li><a href="#"></a></li>
                      <li><a href="#"></a></li>
                      <li><a href="#"></a></li>                   
                        </ul>
            <ul id="right_menu">
                      <li><a href="#">t</a></li>
                      <li><a href="#">t</a></li>
            </ul>
            <img src="images/panel_home.jpg" id="panel" />
                        <div id="content">
                      <div class="column1">
                          <h2>Text</h2>
                    <p>Text Here</p>
                </div>
    Now it does not even format it so all of my code aligns on the left like so:
    <head>
    <title>Example</title>
    <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
    </head>
    <body>
    <div id="outside_container">
    <div id="container">
    <a href="#"><img src="images/logo.jpg" id="logo" /></a>
    <ul id="menu">
    <li><a href="#"></a></li>
    <li><a href="#"></a></li>
    <li><a href="#"></a></li>                   
    </ul>
    <ul id="right_menu">
    <li><a href="#">t</a></li>
    <li><a href="#">t</a></li>
    </ul>
    <img src="images/panel_home.jpg" id="panel" />
    Can anybody please help me?

    Did you try Edit > Preferences > Code Format > Indent?
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists 
    http://alt-web.com/
    http://twitter.com/altweb

  • Code Indent in Dreamweaver CS3

    I have just tried out Dreamweaver in CS3 and I was
    disappointed to find that one of the most basic features in any
    code editor remains elusive. I am quite simply talking about the
    indent of code. I have set code to indent with 4 spaces in the Code
    Format preferences window, but when I indent code, it still uses a
    tab. I know it's not a massive deal, but it's such a simple feature
    and it has caused me a good bit of frustration. It would be great
    if Adobe could fix this sometime :)

    I've had the Convert Tabs to Space on... and it appears to be
    just spaces in
    DW... but if you open file in Notepad, then they are in fact
    Tabs... so DW
    is not converting... just in the way it gets displayed.
    "Randy Edmunds" <[email protected]> wrote in
    message
    news:f0apco$p8e$[email protected]..
    > ebow,
    >
    > What kind of "code" are you talking about?
    >
    > The DW pref that uses spaces vs. tabs applies to the
    indenting done for
    > source formatting of HTML "markup" or CSS "rules" (i.e.
    not JavaScript
    > "code").
    >
    > But, if you hit a tab character on the keyboard, that's
    what gets
    > inserted.
    >
    > Note that you can select a block of text, right-click
    and use:
    >
    > Selection > Convert Tabs to Space
    >
    > Hope this helps,
    > Randy
    >
    >
    >> I have just tried out Dreamweaver in CS3 and I was
    disappointed to find
    >> that one of the most basic features in any code
    editor remains elusive. I
    >> am quite simply talking about the indent of code. I
    have set code to
    >> indent with 4 spaces in the Code Format preferences
    window, but when I
    >> indent code, it still uses a tab. I know it's not a
    massive deal, but
    >> it's such a simple feature and it has caused me a
    good bit of
    >> frustration. It would be great if Adobe could fix
    this sometime :)

  • Code Indenting Issue

    I'm having an issue with code auto indenting, or lac kthereof,  in Dreamweaver (CS5.5), on a windows operating system.
    I have set my Code Format Preferences as follows:
    Indent (yes) with 1 Tab
    Tab Size 4
    That is all fine and dandy, however, when I'm writing code (such as an array in PHP), and hit return, it's not auto indenting as it should. On my windows system it looks like the following:
    $args = array(
    'redirect' => admin_url(),
    On my mac system at work, the same code auto indents the second line (which is the array items) to the the start of the array bracket. The same goes with any ending array brackets, it aligns them properly.
    $args = array(
                             'redirect' => admin_url(),
    To me this makes for much cleaner code but I can't figure out why one system does it and not the other.  Did I miss a prefference setting somewhere?
    If someone could help me that would be great!

    It will work if you haven't and exception block in the end of the function or procedure. Of course that doesn't help nothing at least for me cause i'll always put exception blocks in teh end.
    What would be great is to have a list of procedures in package. In the tree navigation under the packages.

  • Code editor: need spaces instead of tab characters for indentation

    I need to have spaces inserted into my code for indentation instead of tabs. "Use tab character" is unchecked under tools|preferences|code editor|code style|edit but to no avail. Any suggestions? Thanks, M C

    But would this cause a tab to be translated as one space or would it still be a tab character? I think it will still be a tab character, which is a problem. I know MS Dev Studio can be set to translate tabs to spaces on the fly so if you hit a tab the cursor jumps 4 spaces and those spaces are spaces, not a tab. Thanks for the reply.

  • Can the editor use spaces instead of tabs for indentation?

    I need to have spaces inserted into my code for indentation instead of tabs. "Use tab character" is unchecked under tools|preferences|code editor|code style|edit but to no avail. Any suggestions? Thanks.

    But would this cause a tab to be translated as one space or would it still be a tab character? I think it will still be a tab character, which is a problem. I know MS Dev Studio can be set to translate tabs to spaces on the fly so if you hit a tab the cursor jumps 4 spaces and those spaces are spaces, not a tab. Thanks for the reply.

  • Using the keyboard to select code malfunctioning in Flash, for you too?

    Hi all,
    Curious if we have any seasoned keyboard lovers here that
    suffer this same issue, or better, have solved it! I believe the
    issue to be flash though, and a glitch that needs patching, as it
    happens on multiple systems for me.
    In Windows, in every text entry known to mankind, if your
    cursor is at the beginning of a line and you hold shift and press
    the down arrow, it selects that whole line. It's a way of selecting
    all whitespace at the beginning and end as well as the CRLF. It's
    very useful in duplicating whole lines of text because it copies
    CRLF (carriage return line feed). Just using your mouse to select a
    line of text does not usually copy CRLF, and thus you can't paste
    it. Nor does shift-end or shift-right arrowing to select text. It's
    just shift + down arrow that also copies CRLF. If you dont copy
    CRLF, then you need to press enter after every line you paste.
    So my problem? Flash does not have this behaviour (in windows
    F8 Pro or CS3 Pro). Flash
    additionally selects whitespace on the following line (next
    line down). So you get the whole current line, AND the spaces and
    tabs on the next line.
    This is a glitch. No other program does this. This is
    completely non-standard.
    Why does this matter? Because code is indented. This means
    every time I try to copy some lines of code to re-arrange some
    lines (thousands of times a month), it also selects the indentation
    of the code on the line below my selection. So when I cut the code
    (CTRL+X), it cuts the indentation of that line and I continually
    need to fix it. By fixing it, I mean I need to correct the extra
    whitespace selection before I even cut the code. I gotta hold shift
    and slap the left arrow key to reduce my selection of the
    whitespace before I cut.
    This one stupid quirk of flash has been annoying me for
    months.. So I really need to know.. Does this happen to everyone
    else also? Does everyone else use the mouse to copy code? Am I
    alone here? Or is this just happening to me?
    Quick way to test it is just to open
    any text editor you have. Any at all. Notepad, C# studio,
    wordpad, dreamweaver, who cares, a web form, yada... Anything!
    Hell, do it in the quick reply field on this page!! And then put
    your cursor at the beginning of any line, hold shift and press your
    down arrow. Notice it select the line, but nothing more.
    Now do it in flash. Notice it wraps the selection to the next
    line.
    Why the hell did this get past beta testing for over a year
    straight?

    Here's some quick pics of what I mean. Here is the same lines
    of code selected in SEPY AS Editor, Dreamweaver (lol) and standard
    windows Notepad.
    SEPY Editor Example
    Notepad
    Dreamweaver
    K.. now here's what happens in flash CS3 (and flash 8) both
    professional:
    Stupid Flash
    Notice the extra whitespace selected on the next line up to
    the brace? Does that happen for you?
    This happens for me on 3 different workstations here. Old
    Win2K SP4 Pro box with Flash 8. WinXP Pro (32bit) with Flash CS3.
    Vista Ultimate (64bit) with Flash CS3. So this can't be happening
    to me alone.
    Anyone else get that behavior?

  • BSP layout section - Indenting / HTMLTidy

    Hi all,
    Can anyone tell me if the BSP layout editor ( the layout tab in SE80 when editing a BSP Application) has a working pretty printer implementation?
    When I try to copy my layout to the editor, it loses all indentation for the HTML tags. I am not using much BSP HTML just plain HTML. Not only does it lose all the indenting but does not indent anything after that. I am on SAPGUI verision 7.10 patch 3.

    Hi Preet,
    The BSP Pretty painter goes best with the HTMLB layout....so if you have HTML more...then in SE80, do CTRL+F4 and it will open the code for you in notepad....
    then you can just copy the code and indent it in another HTML editors
    eg <a href="http://www.textpad.com">Textpad</a>...
    Many of them are availiable online....
    Then you can just copy the text back to the notepad and close it...it will ask if you need to reload data....say YES...and it will copy the contents back to the SE80....
    Thats how I normally do....
    Hope this helps.
    <b><i>Do reward each useful answer..!</i></b>
    Thanks,
    Tatvagna.

  • VIrtual PC version 7:  (Windows XP Home or Pro) on an iBook???

    Hello all,
    I currently have an iBook G4 with 1.33GHz, 256MB built in, 512MB L2 cache. I have 33.1 GB available on a 55.8 GB internal hard drive, plus an 80GB external iOmega hard drive.
    I've asked around regarding installing Virtual PC (windows XP) on my iBook and how it would run. Many are suggesting just to "forget it" becuase it will run slowly.
    The reason I need this Virtual PC is for a computer courses at college; they all run on Windows XP (Visual Basic, etc). I don't want to give up my Mac for a Windows machine just for college...so Virtual PC was my best option.
    What do you think?
    Thank you in advance for all your help!!!
    [email protected]
    iBookG4   Mac OS X (10.3.8)   External 80GB iOmega hard drive
    iBookG4   Mac OS X (10.3.8)   External 80GB iOmega hard drive

    I wouldn't recommend doing development on a virtual pc platform - especially on stretch system resources like yours. All but the most trivial projects require lots of memory and processing to develop and compile. Integrated Development Environments such as MS Visual Studio are well known to be resource hungry - especially when you start using features like code refactoring and debuggers all of which you will learn about on your college course.
    See if you can pick up a cheap laptop - especially inquire at your college about leasing deals - even a basic modern laptop will outperform a VPC on your system any day of the week.

  • Baffling Problem with Acrobat Javascript

    I'm hoping someone can help me. I've tried for hours and hours to find what the trouble is but just can't find a solution.
    The following code works, however, this is the baffling part. I need to edit / update the code but the problem occurs when I make ANY changes to the code - even indenting a line. You will notice that the code is not indented and poorly formatted - that's because when I had the code indented, I repeatedly got a "SyntaxError: missing } in compound statement"
    I am completely baffled as to why sometimes I get the SyntaxError and sometimes not. I swear there are instances where the code worked one time and then another time causes a SyntaxError.
    Tried using Adobe Javascript Debugger, tried running code through jslint.com, tried creating a new PDF file and placing this code in that file - still getting SyntaxError if I change or indent the code. The only thing I haven't tried yet is trying it out on the Windows version.
    I'm using Acrobat Pro 10.1.3 (Creative cloud) on a Mac OS X Lion 10.7.4
    Any help would be really appreciated!
    var trackErrors = 0;
    var errorMessage = 'Please complete all of the required fields';
    if (this.getField('1A').value.length === 0) { errorMessage += ' A Wall Height '; trackErrors++; }
    if (this.getField('1B').value.length === 0) { if (trackErrors === 1) { errorMessage += ', B Wall Length '; } else { errorMessage += ' B: Wall Length '; trackErrors++; } }
    if (this.getField('1C').value.length === 0) { if (trackErrors === 1) { errorMessage += ', C Spacing '; } else { errorMessage += ' C: Spacing '; trackErrors++; } }
    if (this.getField('1-4-radio').value === 'Off') { if (trackErrors === 1) { errorMessage += ' and Material Type - Fabric or Laminate.'; } else { errorMessage += ' Mat type'; trackErrors++; } }
    if (trackErrors === 0) {
    var x, y, v, z, kits = '';
    var flag = 0;
    this.getField('1D').value = this.getField('1B').value / 2;
    this.getField('1E').value = this.getField('1D').value / this.getField('1C').value;
    this.getField('1F').value = Math.floor(this.getField('1E').value);
    this.getField('1G').value = this.getField('1F').value + (this.getField('1F').value - 1);
    this.getField('1H').value = this.getField('1A').value * this.getField('1G').value;
    var materialType = this.getField('1-4-radio').value;
    switch (materialType)
    case 'F':
    x = this.getField('1H').value / 32;
    y = Math.ceil(x);
    this.getField('bw-kits-required').value = y + " Kit Required";
    break;
    case 'L':
    x = this.getField('1H').value / 128;
    y = this.getField('1H').value / 32;
    if (flag === 0) {
    if (x === Math.round(x)) { kits += x + ' kit '; flag++; }
    if (y === Math.round(y)) { kits += y + ' kit '; flag++; }
    v = Math.floor(x);
    x -= v;
    if (v > 0) { if (x < 0.75) { kits += v + ' kit'; v = Math.ceil((x * 128) / 32); kits += ' and ' + v + ' kit'; } else if (x >= 0.75) { kits += (v + 1) + ' kit '; } } else { kits += Math.ceil(y) + ' kit'; }
    this.getField('bw-kits-required').value = kits;
    break;
    } else { app.alert(errorMessage); }

    I don't get the same thing in Acrobat 9 on Windows XP. It would be interesting to see what happens if you copy what you posted here on the forum and use it.
    I would suggest changing code like:
    if (this.getField('1A').value.length === 0)
    To something like this:
    if (this.getField('1A').valueAsString.length === 0)
    If you use the value property and the field value is numeric (or "true" or "false"), it won't have a length property because the type of the value isn't "string", so it will be undefined. Since the special value of undefined is not equal to zero the code works, but it's a bit misleading. It could be further refined to just:
    if (!getField('1A').valueAsString)

  • Urgent help please.  Inner Join caused ora-00933 error

    I ran this one , works fine:
    SELECT DISTINCT EXP.EXP_ID,
    EXP.DATU_EXP_WIRE_CENTER_CLLI,
    EXP.DATU_EXP_IP,
    EXP.DATU_EXP_CLLI,
    EXP.DATU_EXP_PORT,
    EXP.DATU_EXP_NAME,
    EXP.DATU_EXP_CITY,
    EXP.DATU_EXP_STATE,
    EXP.DATU_EXP_SW_VERSION,
    DECODE(LAST_ALARM.LAST_ALARM_DATE, NULL, TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'),
         TO_CHAR(LAST_ALARM.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS STATUS_DATE,
    DECODE(LAST_ALARM.ALARM_NAME, NULL, 'Disconnected', LAST_ALARM.ALARM_NAME) AS DATU_STATUS,
    DECODE(LAST_ALARM.ALARM_CLASS, NULL, 'OTHER', LAST_ALARM.ALARM_CLASS) AS IS_ERROR_STATUS,
         DECODE(LAST_RESOURCE.LAST_ALARM_DATE, NULL, '', TO_CHAR(LAST_RESOURCE.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS RESOURCE_STATUS_DATE,
         DECODE(LAST_RESOURCE.RESOURCE_CODE_NAME, NULL, '', LAST_RESOURCE.RESOURCE_CODE_NAME) AS RESOURCE_STATUS,
         DECODE(LAST_RESOURCE.RESOURCE_CODE_CLASS, NULL, '', LAST_RESOURCE.RESOURCE_CODE_CLASS) AS IS_RESOURCE_ERROR_STATUS,
         DECODE(LAST_OPER.LAST_ALARM_DATE, NULL, '', TO_CHAR(LAST_OPER.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS OPER_STATUS_DATE,
         DECODE(LAST_OPER.OPER_CODE_NAME, NULL, '', LAST_OPER.OPER_CODE_NAME) AS OPER_STATUS,
         DECODE(LAST_OPER.OPER_CODE_CLASS, NULL, '', LAST_OPER.OPER_CODE_CLASS) AS IS_OPER_ERROR_STATUS,
    EXP.BEGIN_MAINT_WINDOW, RTU.RTU_NAME
    FROM TT_DATU_EXP_UNIT_INFO EXP
         left outer join
    ( SELECT distinct alarmed_datus.EXP_ID, c.ALARM_NAME, c.ALARM_TYPE, c.ALARM_CLASS, alarmed_datus.LAST_ALARM_DATE
    FROM ( SELECT EXP_ID, MAX(ALARM_TIME) AS LAST_ALARM_DATE FROM TT_DATU_EXP_ALARM_INFO GROUP BY EXP_ID ) alarmed_datus
    inner join TT_DATU_EXP_ALARM_INFO b on b.EXP_ID = alarmed_datus.EXP_ID AND b.ALARM_TIME = alarmed_datus.LAST_ALARM_DATE
    inner join TT_DATU_EXP_ALARM_TYPES c on b.ALARM_TYPE = c.ALARM_TYPE
    ) LAST_ALARM on EXP.EXP_ID = LAST_ALARM.EXP_ID
         left outer join
         ( SELECT distinct a.EXP_ID, c.RESOURCE_CODE_NAME, c.RESOURCE_CODE_TYPE, c.RESOURCE_CODE_CLASS, a.LAST_ALARM_DATE
         FROM ( SELECT EXP_ID, MAX(RESOURCE_CODE_TIME) AS LAST_ALARM_DATE
         FROM TT_DATU_EXP_RESOURCE_CODE_INFO GROUP BY EXP_ID ) a
    inner join TT_DATU_EXP_RESOURCE_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.RESOURCE_CODE_TIME = a.LAST_ALARM_DATE
    inner join TT_DATU_EXP_RESOURCECODE_TYPES c on b.RESOURCE_CODE_TYPE = c.RESOURCE_CODE_TYPE
         ) LAST_RESOURCE on EXP.EXP_ID = LAST_RESOURCE.EXP_ID
         left outer join
         ( SELECT distinct a.EXP_ID, c.OPER_CODE_NAME, c.OPER_CODE_TYPE, c.OPER_CODE_CLASS, a.LAST_ALARM_DATE
         FROM ( SELECT EXP_ID, MAX(OPER_CODE_TIME) AS LAST_ALARM_DATE
         FROM TT_DATU_EXP_OPER_CODE_INFO GROUP BY EXP_ID ) a
    inner join TT_DATU_EXP_OPER_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.OPER_CODE_TIME = a.LAST_ALARM_DATE
    inner join TT_DATU_EXP_OPER_CODE_TYPES c on b.OPER_CODE_TYPE = c.OPER_CODE_TYPE) LAST_OPER on EXP.EXP_ID = LAST_OPER.EXP_ID
    inner join TT_DATU_LRN_MAP LRNS on EXP.EXP_ID = LRNS.EXP_ID AND TRIM(LRNS.LRN) LIKE p_LRN
    inner join TT_RTU_TYPES RTU ON EXP.RTU_TYPE_ID = RTU.RTU_TYPE_ID
    WHERE NOT EXISTS (SELECT SATELLITE_EXP_ID FROM TT_HOST_SATELLITE WHERE EXP.EXP_ID = SATELLITE_EXP_ID)
    AND EXP.IS_PRIMARY_ADDRESS LIKE p_isPrimary;
         ELSE
         OPEN v_cursor FOR
    SELECT EXP.EXP_ID,
    EXP.DATU_EXP_WIRE_CENTER_CLLI,
    EXP.DATU_EXP_IP,
    EXP.DATU_EXP_CLLI,
    EXP.DATU_EXP_PORT,
    EXP.DATU_EXP_NAME,
    EXP.DATU_EXP_CITY,
    EXP.DATU_EXP_STATE,
    EXP.DATU_EXP_SW_VERSION,
    DECODE(LAST_ALARM.LAST_ALARM_DATE, NULL, TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'), TO_CHAR(LAST_ALARM.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS STATUS_DATE,
    DECODE(LAST_ALARM.ALARM_NAME, NULL, 'Disconnected', LAST_ALARM.ALARM_NAME) AS DATU_STATUS,
    DECODE(LAST_ALARM.ALARM_CLASS, NULL, 'OTHER', LAST_ALARM.ALARM_CLASS) AS IS_ERROR_STATUS,
         DECODE(LAST_RESOURCE.LAST_ALARM_DATE, NULL, '', TO_CHAR(LAST_RESOURCE.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS RESOURCE_STATUS_DATE,
         DECODE(LAST_RESOURCE.RESOURCE_CODE_NAME, NULL, '', LAST_RESOURCE.RESOURCE_CODE_NAME) AS RESOURCE_STATUS,
         DECODE(LAST_RESOURCE.RESOURCE_CODE_CLASS, NULL, '', LAST_RESOURCE.RESOURCE_CODE_CLASS) AS IS_RESOURCE_ERROR_STATUS,
         DECODE(LAST_OPER.LAST_ALARM_DATE, NULL, '', TO_CHAR(LAST_OPER.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS OPER_STATUS_DATE,
         DECODE(LAST_OPER.OPER_CODE_NAME, NULL, '', LAST_OPER.OPER_CODE_NAME) AS OPER_STATUS,
         DECODE(LAST_OPER.OPER_CODE_CLASS, NULL, '', LAST_OPER.OPER_CODE_CLASS) AS IS_OPER_ERROR_STATUS,
    EXP.BEGIN_MAINT_WINDOW, RTU.RTU_NAME
    FROM TT_DATU_EXP_UNIT_INFO EXP
         left outer join (
    SELECT distinct alarmed_datus.EXP_ID, c.ALARM_NAME, c.ALARM_TYPE, c.ALARM_CLASS, alarmed_datus.LAST_ALARM_DATE
    FROM (SELECT EXP_ID, MAX(ALARM_TIME) AS LAST_ALARM_DATE FROM TT_DATU_EXP_ALARM_INFO GROUP BY EXP_ID ) alarmed_datus
         inner join TT_DATU_EXP_ALARM_INFO b on b.EXP_ID = alarmed_datus.EXP_ID AND b.ALARM_TIME = alarmed_datus.LAST_ALARM_DATE
         inner join TT_DATU_EXP_ALARM_TYPES c on b.ALARM_TYPE = c.ALARM_TYPE )
         LAST_ALARM on EXP.EXP_ID = LAST_ALARM.EXP_ID
         left outer join
              ( SELECT distinct a.EXP_ID, c.RESOURCE_CODE_NAME, c.RESOURCE_CODE_TYPE, c.RESOURCE_CODE_CLASS, a.LAST_ALARM_DATE
              FROM ( SELECT EXP_ID, MAX(RESOURCE_CODE_TIME) AS LAST_ALARM_DATE
              FROM TT_DATU_EXP_RESOURCE_CODE_INFO GROUP BY EXP_ID ) a
         inner join TT_DATU_EXP_RESOURCE_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.RESOURCE_CODE_TIME = a.LAST_ALARM_DATE
         inner join TT_DATU_EXP_RESOURCECODE_TYPES c on b.RESOURCE_CODE_TYPE = c.RESOURCE_CODE_TYPE) LAST_RESOURCE on EXP.EXP_ID = LAST_RESOURCE.EXP_ID
         left outer join
              ( SELECT distinct a.EXP_ID, c.OPER_CODE_NAME, c.OPER_CODE_TYPE, c.OPER_CODE_CLASS, a.LAST_ALARM_DATE
              FROM ( SELECT EXP_ID, MAX(OPER_CODE_TIME) AS LAST_ALARM_DATE
              FROM TT_DATU_EXP_OPER_CODE_INFO GROUP BY EXP_ID ) a
         inner join TT_DATU_EXP_OPER_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.OPER_CODE_TIME = a.LAST_ALARM_DATE
         inner join TT_DATU_EXP_OPER_CODE_TYPES c on b.OPER_CODE_TYPE = c.OPER_CODE_TYPE
              ) LAST_OPER on EXP.EXP_ID = LAST_OPER.EXP_ID ORDER BY EXP.DATU_EXP_CLLI
         inner join TT_RTU_TYPES RTU ON EXP.RTU_TYPE_ID = RTU.RTU_TYPE_ID
    WHERE NOT EXISTS (SELECT SATELLITE_EXP_ID FROM TT_HOST_SATELLITE WHERE EXP.EXP_ID = SATELLITE_EXP_ID) AND EXP.IS_PRIMARY_ADDRESS like
    p_isPrimary;
    However this one:
    SELECT EXP.EXP_ID,
    EXP.DATU_EXP_WIRE_CENTER_CLLI,
    EXP.DATU_EXP_IP,
    EXP.DATU_EXP_CLLI,
    EXP.DATU_EXP_PORT,
    EXP.DATU_EXP_NAME,
    EXP.DATU_EXP_CITY,
    EXP.DATU_EXP_STATE,
    EXP.DATU_EXP_SW_VERSION,
    DECODE(LAST_ALARM.LAST_ALARM_DATE, NULL, TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS'),
         TO_CHAR(LAST_ALARM.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS STATUS_DATE,
    DECODE(LAST_ALARM.ALARM_NAME, NULL, 'Disconnected', LAST_ALARM.ALARM_NAME) AS DATU_STATUS,
    DECODE(LAST_ALARM.ALARM_CLASS, NULL, 'OTHER', LAST_ALARM.ALARM_CLASS) AS IS_ERROR_STATUS,
         DECODE(LAST_RESOURCE.LAST_ALARM_DATE, NULL, '', TO_CHAR(LAST_RESOURCE.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS RESOURCE_STATUS_DATE,
         DECODE(LAST_RESOURCE.RESOURCE_CODE_NAME, NULL, '', LAST_RESOURCE.RESOURCE_CODE_NAME) AS RESOURCE_STATUS,
         DECODE(LAST_RESOURCE.RESOURCE_CODE_CLASS, NULL, '', LAST_RESOURCE.RESOURCE_CODE_CLASS) AS IS_RESOURCE_ERROR_STATUS,
         DECODE(LAST_OPER.LAST_ALARM_DATE, NULL, '', TO_CHAR(LAST_OPER.LAST_ALARM_DATE,'YYYY/MM/DD HH24:MI:SS')) AS OPER_STATUS_DATE,
         DECODE(LAST_OPER.OPER_CODE_NAME, NULL, '', LAST_OPER.OPER_CODE_NAME) AS OPER_STATUS,
         DECODE(LAST_OPER.OPER_CODE_CLASS, NULL, '', LAST_OPER.OPER_CODE_CLASS) AS IS_OPER_ERROR_STATUS,
    EXP.BEGIN_MAINT_WINDOW, RTU.RTU_NAME
    FROM TT_DATU_EXP_UNIT_INFO EXP
         left outer join
    SELECT distinct alarmed_datus.EXP_ID, c.ALARM_NAME, c.ALARM_TYPE, c.ALARM_CLASS, alarmed_datus.LAST_ALARM_DATE
    FROM ( SELECT EXP_ID, MAX(ALARM_TIME) AS LAST_ALARM_DATE FROM TT_DATU_EXP_ALARM_INFO GROUP BY EXP_ID) alarmed_datus
         inner join TT_DATU_EXP_ALARM_INFO b on b.EXP_ID = alarmed_datus.EXP_ID AND b.ALARM_TIME = alarmed_datus.LAST_ALARM_DATE
         inner join TT_DATU_EXP_ALARM_TYPES c on b.ALARM_TYPE = c.ALARM_TYPE ) LAST_ALARM on EXP.EXP_ID = LAST_ALARM.EXP_ID
         left outer join
              ( SELECT distinct a.EXP_ID, c.RESOURCE_CODE_NAME, c.RESOURCE_CODE_TYPE, c.RESOURCE_CODE_CLASS, a.LAST_ALARM_DATE
              FROM ( SELECT EXP_ID, MAX(RESOURCE_CODE_TIME) AS LAST_ALARM_DATE
              FROM TT_DATU_EXP_RESOURCE_CODE_INFO GROUP BY EXP_ID ) a
         inner join TT_DATU_EXP_RESOURCE_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.RESOURCE_CODE_TIME = a.LAST_ALARM_DATE
         inner join TT_DATU_EXP_RESOURCECODE_TYPES c on b.RESOURCE_CODE_TYPE = c.RESOURCE_CODE_TYPE) LAST_RESOURCE on EXP.EXP_ID = LAST_RESOURCE.EXP_ID
         left outer join
              ( SELECT distinct a.EXP_ID, c.OPER_CODE_NAME, c.OPER_CODE_TYPE, c.OPER_CODE_CLASS, a.LAST_ALARM_DATE
              FROM ( SELECT EXP_ID, MAX(OPER_CODE_TIME) AS LAST_ALARM_DATE
              FROM TT_DATU_EXP_OPER_CODE_INFO GROUP BY EXP_ID ) a
         inner join TT_DATU_EXP_OPER_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.OPER_CODE_TIME = a.LAST_ALARM_DATE
         inner join TT_DATU_EXP_OPER_CODE_TYPES c on b.OPER_CODE_TYPE = c.OPER_CODE_TYPE
              ) LAST_OPER on EXP.EXP_ID = LAST_OPER.EXP_ID ORDER BY EXP.DATU_EXP_CLLI
    inner join TT_RTU_TYPES RTU ON EXP.RTU_TYPE_ID = RTU.RTU_TYPE_ID
    WHERE EXP.IS_PRIMARY_ADDRESS like p_isPrimary;
    this one not work kept giving me errors:
    [ ORA-00933: SQL command not properly ended
    Any guru can help? I need to have this resolved end of today.
    Thanks in advance.

    Hi,
    Never write, let alone post, unformatted code.
    Indent the code so that it's easy to set the scope of sub-queries, and the majoc clauses (SELECT, FROM, WHERE, ORDER BY, ...) in each.
    When posting any formatted text on this site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
    If you do that to the code you posted, you'll see that it ends like this:... inner join     TT_DATU_EXP_OPER_CODE_INFO     b on b.EXP_ID     = a.EXP_ID
                                       AND      b.OPER_CODE_TIME = a.LAST_ALARM_DATE
         inner join      TT_DATU_EXP_OPER_CODE_TYPES      c on      b.OPER_CODE_TYPE = c.OPER_CODE_TYPE
         ) LAST_OPER          on EXP.EXP_ID = LAST_OPER.EXP_ID
    ORDER BY EXP.DATU_EXP_CLLI
    inner join TT_RTU_TYPES RTU     ON EXP.RTU_TYPE_ID = RTU.RTU_TYPE_ID
    WHERE EXP.IS_PRIMARY_ADDRESS      like p_isPrimary
    You can't put an ORDER BY clause  in the middle of the FROM clause.
    The ORDER BY clause always goes after the WHERE clause, like this:... inner join     TT_DATU_EXP_OPER_CODE_INFO     b on b.EXP_ID     = a.EXP_ID
                                       AND      b.OPER_CODE_TIME = a.LAST_ALARM_DATE
         inner join      TT_DATU_EXP_OPER_CODE_TYPES      c on      b.OPER_CODE_TYPE = c.OPER_CODE_TYPE
         ) LAST_OPER          on EXP.EXP_ID = LAST_OPER.EXP_ID
    inner join TT_RTU_TYPES RTU     ON EXP.RTU_TYPE_ID = RTU.RTU_TYPE_ID
    WHERE EXP.IS_PRIMARY_ADDRESS      like p_isPrimary
    ORDER BY EXP.DATU_EXP_CLLI

  • XSLT, problem with HTML

    Hi,
    I am using XSLT to generate a webpage using an XML file and a stylesheet. The HTML page is created fine however any HTML tag i.e. the break line tag comes out in the file as &lt.;BR&gt.; rather then <.BR.> (ignore the dots, just there so the form doesnt show them incorrectly). Any suggestions? Here is my code:
    XML FILE
    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><transcript xsi:noNamespaceSchemaLocation="transcript-internal.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <section title="Outlook">
    <question>question<BR></question>
    <answer>answer</answer>
    </section>
    <disclaimer>disclaimer</disclaimer>
    </transcript>
                TransformerFactory tFactory = TransformerFactory.newInstance();
                File stypePathFile = new File(stylePath);
                if (!stypePathFile.exists())
                     logger.severe("cannot transform transcript..stylesheet does not exist at this path " + stylePath);
                StreamSource stylesource = new StreamSource(stypePathFile);
                Transformer transformer = tFactory.newTransformer(stylesource);
                transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
                transformer.setOutputProperty(OutputKeys.ENCODING, charEnc);
                transformer.setOutputProperty(OutputKeys.METHOD, "html");
                byte bytes[] = dataXML.getBytes();
                ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
                StreamSource dataSource = new StreamSource(bais);
                StreamResult outputResult = new StreamResult(new File(outputPath));
                transformer.transform(dataSource, outputResult);
            } catch (TransformerConfigurationException tce) {
                // Error generated by the parser
                logger.severe("configuration error while transforming transcript: " + tce.getMessage());
            } catch (Exception e) {
                // Error generated by the parser
                 logger.severe("error while transforming transcript: " + e.getMessage());
        }  The XML file is created using the following code:
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    public class TranscriptFilter extends XMLFilterImpl {
         public static final String SECTION_PREFIX = "+s:";
         public static final String QUESTION_PREFIX = "+q:";
         public static final String ANSWER_PREFIX = "+a:";
         public static final String DISCLAIMER_PREFIX = "+d:";
         public static final String IMAGE_PREFIX = "+i:";
         public static final String NARRATION_PREFIX = "+n:";
         public static final String PREFIX_REG_EXP = "(?m)(?=\\+[sqaidn]:)";
         public static final String TRANSCRIPT_TAG = "transcript";
         public static final String SECTION_TAG = "section";
         public static final String TITLE_TAG = "title";
         public static final String NARRATION_TAG = "narration";
         public static final String QUESTION_TAG = "question";     
         public static final String ANSWER_TAG = "answer";
         public static final String DISCLAIMER_TAG = "disclaimer";
         public static final String IMAGE_TAG = "image";
         public static final String URL_TAG = "url";          
         // schema validation tags
         public static final String SCHEMA_LOCATION_TAG = "xsi:noNamespaceSchemaLocation";
         public static final String SCHEMA_LOCATION_VALUE = "transcript-internal.xsd";     
         public static final String SCHEMA_INSTANCE_TAG = "xmlns:xsi";
         public static final String SCHEMA_INSTANCE_VALUE = "http://www.w3.org/2001/XMLSchema-instance";
         private boolean inSection = false; // is section tag open but not closed
         public void parse(String pText) throws SAXException {
              String text = pText;
              String line = null;
              String prefix = null;
              if (text != null) {
                   String[] elements = text.split(PREFIX_REG_EXP);
                   if (elements != null) {
                        AttributesImpl mainAtts = new AttributesImpl();
                        mainAtts.addAttribute("", SCHEMA_LOCATION_TAG, SCHEMA_LOCATION_TAG, null, SCHEMA_LOCATION_VALUE);                    
                        mainAtts.addAttribute("", SCHEMA_INSTANCE_TAG, SCHEMA_INSTANCE_TAG, null, SCHEMA_INSTANCE_VALUE);
                        startElement("", TRANSCRIPT_TAG, TRANSCRIPT_TAG, mainAtts);
                        for (int i = 0; i < elements.length; i++) {
                             if (elements[i] != null)
                                  line = elements.trim();
                                  if (line.length() > 3) {
                                       // return prefix to determine line data type
                                       prefix = getPrefix(line);
                                       line = removePrefix(line);
                                       if (prefix != null) {
                                            if (prefix.equalsIgnoreCase(SECTION_PREFIX)) {
                                                 closeSection(); // close section if open
                                                 AttributesImpl fieldAtts = new AttributesImpl();
                                                 fieldAtts.addAttribute("", TITLE_TAG, TITLE_TAG, null, line);
                                                 startElement("", SECTION_TAG, SECTION_TAG, fieldAtts);
                                                 inSection = true;
                                            else if (prefix.equalsIgnoreCase(NARRATION_PREFIX)) {
                                                 startElement("", NARRATION_TAG, NARRATION_TAG, new AttributesImpl());
                                                 characters(line);
                                                 endElement("", NARRATION_TAG, NARRATION_TAG);
                                            else if (prefix.equalsIgnoreCase(IMAGE_PREFIX)) {
                                                 AttributesImpl fieldAtts = new AttributesImpl();
                                                 fieldAtts.addAttribute("", URL_TAG, URL_TAG, null, line);
                                                 startElement("", IMAGE_TAG, IMAGE_TAG, fieldAtts);
                                                 endElement("", IMAGE_TAG, IMAGE_TAG);
                                            else if (prefix.equalsIgnoreCase(QUESTION_PREFIX)) {
                                                 startElement("", QUESTION_TAG, QUESTION_TAG, new AttributesImpl());
                                                 characters(line);
                                                 endElement("", QUESTION_TAG, QUESTION_TAG);
                                            else if (prefix.equalsIgnoreCase(ANSWER_PREFIX)) {
                                                 startElement("", ANSWER_TAG, ANSWER_TAG, new AttributesImpl());
                                                 characters(line);
                                                 endElement("", ANSWER_TAG, ANSWER_TAG);
                                            else if (prefix.equalsIgnoreCase(DISCLAIMER_PREFIX)) {
                                                 closeSection(); // close section if open
                                                 startElement("", DISCLAIMER_TAG, DISCLAIMER_TAG, new AttributesImpl());
                                                 characters(line);
                                                 endElement("", DISCLAIMER_TAG, DISCLAIMER_TAG);
                        closeSection(); // close section if open
                        endElement("", TRANSCRIPT_TAG, TRANSCRIPT_TAG);
         // closes the section tag if open
         private void closeSection() throws SAXException {
              if (inSection)
                   endElement("", SECTION_TAG, SECTION_TAG);
              inSection = false;
         // overrides super class method
         private void characters(String pLine) throws SAXException {
              if (pLine != null) {
                   char[] chars = pLine.toCharArray();
                   super.characters(chars, 0, chars.length);
         // returns the prefix for a line
         private String getPrefix(String pLine) {
              String line = pLine;
              String prefix = null;
              if (validLine(line))
                   prefix = line.substring(0,3);
              return prefix;
         private String removePrefix(String pLine) {
              String line = pLine;
              String newLine = "";
              if (validLine(line))
                   newLine = line.substring(3, line.length()).trim();
              return newLine;
         private boolean validLine(String pLine) {
              if (pLine != null && pLine.length() > 3)
                   return true;
              else
                   return false;

    Your 1,000 lines of code were indented so deeply that they scrolled off the right side of my screen and were extremely inconvenient to read. So I didn't read it.
    However. Your question claimed to be about XSLT but I didn't see any XSLT posted. That was sort of strange. Anyway, if you are generating character strings containing <BR> then what you see is what you have to expect. If you want a <BR> element then generate a <BR> element. Like the one you see in the XML example you posted. (What was the relevance of that example, anyway? I didn't get that either. Was it supposed to represent the input you hoped that code was generating, or something?)

Maybe you are looking for

  • Table Formatting appears different in published vs. edit or preview

    Why would a table in RH v11.0 appear fine in the editor mode and preview mode, but appear centered in the published version?  I have tried selecting the entire text and clicking left adjustify and also use the <left indention to ensure it is left.  I

  • Problem in transformation BPM

    We have the next escenary Idoc -> XI -> file. I received 3 Idoc and send 1 file with information of these Idoc. For made this I realice one BPM. This BPM have the next step: Into the loop 1.- I received the idoc 2.- Append idoc to table idoc. 3.- Add

  • [SOLVED] After post trigger go to the specific item. (Oracle Forms 10g)

    I have this layout http://img339.imageshack.us/img339/975/capturetbo.png and a post trigger insert and update                 IF  :item1 IS NULL           AND :item3 IS NOT NULL THEN                     alert_id := FIND_ALERT('blank_alert');         

  • To use i message do i need to have internet connection

    i really don't understand what's all about i message so , can i use imessage with another aplle machine without internet connection at all ??? or do i have to have one...

  • Nokia N8 keep connecting to Wifi

    I think that is a bug that all the symbian anna's phones keep connecting to wifi automatically after i disconnect from the connection. This problem still happen even I set the setting manually switch to wlan. It's very annoying as connecting to wifi