How to handle non-breaking hyphens on translation to XML

Hi,
I have a document that uses non-breaking hyphens in some places and hyphens in others. I think they were trying to stop line wraps from happening in certain cases.
Anyway, now I need to save these files as XML. I believe I need a 'reader character map is 0x2D = 0x??;' statement in my ReadWrite Rules.
Problem is I don't know what ESC - h equates to in hex so I can fill in 0x??
Anyone know the hex value for the non-breaking hyphens?
Thanks,
- mike

Mike,
I do not know the answer to your question, but I handle nonbreaking spaces and nonbreaking hyphens with elements. That is, I define an empty element for each one in my EDD; the EDD inserts the appropriate character in FrameMaker. When exported to XML, these elements become simply empty elements but with names indicating their purposes. Import back into FrameMaker allows the EDD to insert the appropriate characters. Nothing needs to be done in the read/write rules. Of course, if the XML is to be processed by some other application, then the other application needs to convert these elements into spaces or hyphens for its use.
This solution may not work in your situation.
Van

Similar Messages

  • Non-breaking hyphen not displayed correctly

    The non-breaking hyphen (\u2011, &#8209) is not displayed
    correctly - the wrong glyph is shown.
    To reproduce, do the following:
    1. Start the TLF demo editor
    http://labs.adobe.com/technologies/textlayout/demos/
    2. Import the markup below
    Results:
    - Line wrapping is correct: no line break at the hyphen
    - Times New Roman on Windows does have the glyph defined - it
    should look like an ordinary hyphen.
    This was seen in Build 3291.
    Cheers
    David
    Markup:
    <?xml version="1.0" encoding="utf-8"?>
    <flow:TextFlow whiteSpaceCollapse="preserve" xmlns:flow="
    http://ns.adobe.com/textLayout/2008"><flow:p
    marginRight="5"><flow:span fontSize="60">
    2011 non-breaking hyphen Macro‑media
    </flow:span></flow:p></flow:TextFlow>

    Hi Chris,
    you're right, Times New Roman does not contain the glyph. I
    was seeing 2013 whlie I type 2011 -- my mistake, sorry.
    However, it's a pity non of the OTFs implement this glyph
    (also Myriad Pro doesn't, for instance). Open Office 3 seems to
    replace it by a hypen (which is greyed), and InDesign CS4 also
    seems to replace the character and does no word-wrap at this
    position.
    Of course it would be very convenient if Flash could handle
    it the same way..
    Btw, character map is the same as my "chart table
    application", at least it's my translation from the German
    "Zeichentabelle". :-)
    So, sorry again for the confusion...
    david

  • Forced return, non-breaking hyphens & spaces, suppress hyphenation + XML

    Forced return (linefeed), non-breaking hyphens and spaces, suppress hyphenation.
    None of these are preserved when exporting from FrameMaker to XML, since they do not seem to be represented by a Unicode code point. My question to you is: How do you deal with those things in XML?
    The last issues (non-breaking and suppress hyphen) have recently been brought up in:
    http://forums.adobe.com/thread/450363
    http://forums.adobe.com/thread/459503
    Forced return is a common thing in many FrameMaker documents to improve readability of certain phrases.
    For export of FM to XML, there have been proposals to use a special element with a prefix just to capture the special FrameMaker symbol. It works, and may be a valid useful path in certain cases, but I think that it is a questionable way of dealing with it for several reasons:
    It is only relevant for roundtrip, since these special elements will hardly be interpreted by other XML tools, which of course limits the value of XML export.
    It is unwieldy, to say the least, to require the user to insert special elements for saying simple things that otherwise are just natural key strokes in the regular text flow, and which are not perceived as structural elements of information. Most users would think of these symbols/charactes as control characters, and there is no validation warning that says you may not use these characters/symbols.
    An element is used for formatting purposes only, whereas all other elements are used for content or structure.
    There is no automatic way of transforming an existing text that has these "symbols" into some special element when a document is structured with a conversion table.
    There is no automatic way of transforming a structured FM document to XML such that these special "symbols" get translated to some suitable XML construct.
    If the last point could be solved, i.e if all those control characters or markers could automatically be translated to a suitable XML representation, then I would consider the whole issue as solved, otherwise not.
    Even without FrameMaker, how do people deal with these things in "pure xml". For instance, when XML is used for publishing (which I know Arnis Gubins is doing), there will guaranteed be a need to control both hyphenation and line breaks. So how do you (they) do that?
    How do other vendors cope with these issues, e.g XPP?

    Lynne,
    As anyone can see, entity declarations have not really been in the domain of my expertise (understatement), but I might just learn bits and pieces...
    Thanks! I have now done some more reading in various pdfs, such as scructapps etc, but also the w3c xml spec, all of which I have "read" before, but reading is not always the same as understanding...
    I now have used the "entity approach" to make both discretionary hyphen and suppress hyphen work, so that it is represented in the XML export and round-trips just fine.
    Forced return still puzzles me somewhat though: I have a working solution for that using the same entity approach, but it will not work for text ranges (although it is a bit odd to have forced returns in text range elements). Moreover, I am not certain that it really is the best way. In reading other posts on this issue, I have seen that some people want forced returns to really be linefeeds in the xml output, with no other linefeeds, and conversely, when importing xml that are "formatted" in lines, such as code, they want to preserve that.
    One  way to achieve that is to use:
         reader line break is forced return;
         writer line break is 1000 characters;  (or more characters)
    Then it is completely symmetric (i.e works also if some other app has generated the xml with intentional line breaks. And this method is global for all elements, and it works for me.
    Another way to achieve this is to use the following, but it is only valid inside an element:
         preserve line breaks;
         writer line break is 1000 characters;
    Then it is also completely symmetric (in the above sense), and it works for me.
    The latter method has the drawback that it only works for text in the element; it is not inherited to its children.
    But if we look at only one element, what is the difference between the two methods?
    As far as I have been able to see, the results are identical! Why two methods? The first one seems more powerful and general(?)
    Scrutinizing the documentation though, it says that 'preserve line breaks' will add an attribute 'xml:space', but I can't see that in my output?
    Also, concerning the documentation for line break, it says that FM would ignore line breaks when exporting, but it does NOT do that (fortunately). Forced returns always result in linefeeds, no matter what.
    I would be thankful if these issues could be explained, or elaborated.
    Also, would you recommend against any of these methods?
    With my preferred method of using the global 'reader line break is forced return' instead of a local (or many local) 'preserve line breaks', there is of course the danger that when importing xml, it is absolutely necessary that the xml really only has line breaks where they are intended, and not generated every 80 characters or so!
    Is there anything that says it is "ugly" or "bad style" to honor line breaks, and generate long lines?
    Finally, why do we need to limit the number of characters written in one line these days? Why 80, why 1000, why not an unlimited number of characters!?
    Will software these days really crash if given a very long line (assuming that it doesn't exceed total ram memory of course)?
    Sorry about so many questions, but I can't find any answers to them in the docs I have read and searched.

  • Export non-breaking hyphen to XML

    Hi,
    Using (still) Framemaker 8, Structured. I have documents that use the non-breaking hyphen. I would like to save these to XML, then use XSLT to translate the documents to a new form. When I encounter the non-breaking hyphen I would like to translate the non-break hyphen to a reagular hyphen.
    What code(s) should I be looking for in the regular expression?
    Thanks,
    - m

    Matt,
    If you talk about regular expressions I assume you want to post-process the XML using XSLT 2.0?
    Anyway, the non-breaking hyphen (entered as Esc - h) is a valid Unicode character and should appear in your XML as character &#x2011; – at least it does so using FrameMaker 9.
    - Michael

  • Non-breaking hyphens

    Non-breaking hyphens in WebHelp do not work (the hyphenated
    work breaks at the end of the line) when the help system is
    displayed in Internet Explorer, although they work fine (keeps the
    hypenated word together) when displayed in another browser such as
    Mozilla Firefox. Is this a known issue with IE?
    The code that RoboHELP inserts for a non-breaking hyphen is
    <symbol name="Nonbreaking
    Hyphen"><!--begin!kadov{{-->&#45;<!--}}end!kadov-->.
    Thanks for any clues you can provide.

    pamz109 -
    Welcome to the forum. The built-in RHtml editor is known to
    take these kinds of liberties with your code, and you really do
    need to see a "&#8209" in there, or perhaps, just the html
    entity itself. This is where you might consider using DreamWeaver
    as your default editor. It won't change your code like the native
    editor (or FrontPage, for that matter) does.
    The alternative is to use a search-n-replace tool (like
    ReplaceEm) to process the
    files after generation.

  • Non-Breaking Hyphen in MIF String ?

    I'm using a spreadsheet (LibreOffice Calc) to generate the MIF for a Framemaker table: Paste in lines of tab-separated part_numbers and descriptors, copy out raw MIF that opens in Frame as a 3-column table with callout#, part_number and descriptor, each having a unique Xref Marker with marker text based on the p/n & descriptor. It works (including escaping any Frame-special chars in the descriptors), except for one extra feature I'd like to have.
    I'd like to make all dashes in the part-numbers into non-breaking hyphens (\x15). Using the Calc function SUBSTITUTE, I can change any character to any arbitrary string. Part numbers may have zero or more dashes.
    So for raw string 123-456A, where "-" is an NBH, I'd generate:
    <ParaLine <String `123-456A'>
    According to the MIF(7) reference, either of these MIFs should work:
    <ParaLine <String `123\x15456A'>
    <ParaLine <String `123<Char HardHyphen>456A'>
    They don't.
    They both throw a parsing error on open in Frame.
    This doesn't work either:
    <ParaLine <String `123\\x15456A'>
    It ends up as a literal \x15 in the final table.
    This Calc function doesn't work either (where decimal 21 is hex 15):
    =SUBSTITUTE($RawData.A3;"-";"CHAR(21)")
    The character doesn't survive copy and paste through a plaintext editor, even if a raw 0x15 is valid MIF (which it may not be).
    This is FM7.1 Unix, so I can't use the Unicode code point for an NBH (this is the suggest route for MIF8 or later).
    The following MIF is valid, but may require more parsing of my strings than I care to invest in:
    <String `123'><Char HardHyphen><String `456A'>
    I could use:
    =SUBSTITUTE($RawData.A3;"-";"'><Char HardHyphen><String `")
    If I were sure that no partnumbers began or ended with a dash.
    Any other ideas?

    <String `123\x15456A'> parse fail
    <String `123 \x15 456A'> nbh, but leading space (fail)
    <String `123\x15 456A'> nbh, no spaces, works perfectly, thank you
    Amusingly, if you re-save the same document as MIF, Frame(7) re-codes the nbh as:
    <String `123'>
    <Char HardHyphen>
    <String `456A'>
    ... as does MIF9, saving as MIF9,
    even though the MIF9 reference says that as of MIF8, HardHyphen and 9 of its pals are no longer represented by name - use the UTF-8 code points. I'm guessing that intended policy change had some unintended results.

  • Automatic Non-Breaking Hyphen

    Hi,
    Is there a way to make InDesign CS5.5 to automatically use a non-breaking hyphen when I paste a bunch of text with regular hyphens in it?
    Or, is there a way to tell it to treat a regular hyphen in the middle of the word as if it were a letter; that is not to break up a word with a hyphen in it when Hyphenation is turned off?
    Thanks.

    Manually: Use Alt+Command+Hyphen to manually insert a non-breaking hyphen (... I use it all the time on Windows but can't recall the Win key combo! ).
    On a text selection: Use Find/Change on your selected text to change all hyphens to non-breaking hyphens. See the Change Text dropdown menu for the code for a non-breaking hyphen.
    Alternatively:
    Add a GREP style to the paragraph style(s) you are using for your text that applies a character style specifying "No Break" on the regular hyphen, which is simply this single character
    in the To Text field of the GREP Style list.

  • Are there non-breaking hyphens in Pages '09?

    In some programs, like Adobe InDesign, you can do a find and replace for "regular" hyphens and replace them with non-breaking hyphens. Is this an option in Pages? I don't see anything like that described in the Help file.
    Thanks,
    Richard

    as I insert the character it seems to alter line interspacing from the previous line.
    That may indicate that the font you are using does not contain 2011, so another font with different vertical metrics gets used instead. You can see which fonts contain this character by selecting it in Character Viewer and looking in the Font Variation pane there.

  • Duplicate check via BAS (ADDRESS_SEARCH)-- how to handle non-crm customer?

    Dear all,
    I'm implementing a duplicate check and using the BADI Address_search. Within this BADI I use the method "Address_Search" for calling a third party software tool with customer information. This tool checks whether the entered customer is already available in CRM AND in other system in our company holding.
    The method provides me a list of all found duplicates (incl. non-crm customers)
    My problem is that I need to fill a export table "ex_t_search_result" (type adkey_indx_tab) of this method which expects ADRC number. For the CRM customer it is not a problem. I can figure them out by table BUT020 and the customer number. But for the non-crm customer I do not have a ADRC number.
    I know there are some methods for creating addresses in BAS (function group SZA0), but actually Im not sure how to handle them.
    Does anybody of you had faced a similar issue?
    Thanks for your help
    Firat C.

    hello,
    BP is BDT (Business Data toolset) enabled (you can check it by adding break point in FM BUS_PBO and executing BP transaction). You can add your check directly to standard view (the check will be executed each time when user pushes enter) or you could add you check to appropriate action (during saving etc.) there are number of actions which you could use it depends on your requirements. You can find a lot of info about BDT (if you are not familiar) in Wiki.
    br,
    dez_

  • How to handle line break embeded inside CSV column

    Hi there,
    I am under the pressure to make it work. I already put this question on APEX forum, but on second thought, I think it relates more to PL/SQL rather than APEX since APEX 4.1 already have utility to handle CSV Upload.
    If you read it already in APEX forum, please ignore.
    I am sorry for that. Thanks for reading.
    I need to develop an app that allows user to upload CSV file to a interface table.
    The APEX version at my workplace is 4.0.2.
    I used the code from
    http://dbswh.webhop.net/htmldb/f?p=BLOG:READ:0::::ARTICLE:11000346061523
    It all works well till recently I find out
    If a column in a CSV file cotain a line break (or new line) e.g. (The tester copy and paste this text which has line break into a column in a spreadsheet)
    This is the first sentence.
    This is the second sentence.
    It will break the “This is the second sentence”. To a new column.
    The contents of the CSV viewed in Notepad look as below
    Assessment Date,Scheduled Date,Assessment Provider,Assessor Name,Court,First Name,Middle Name,Last Name,PRN Person Record Number,NHI Number,Defendant Attended Y/N,Is Dependent Y/N,Notes,Primary Ethnicity,"Ethnicity Other, please specify",Gender,Currently in Treatment Y/N,Substance of Concern 5,Other Substance Specified
    22/09/2012,,Provider Co Name,Warren Edgley,Wellington,,,Salty,2545554,dgsdf,ergerg,,"This is the first sentence.
    This is the second sentence.",Japanese,,Female,b,,
    Here is the code from the CSV UTIL, please help me to find out how can I replace the line break to a space so that the uploading process is correct.
      CREATE OR REPLACE PACKAGE BODY "CSV_UTIL"
    AS
         --strip the beginning and the end quotes, then replace double quotation with single
       FUNCTION de_quote (p_str IN VARCHAR2, p_enc_by IN VARCHAR2)
          RETURN VARCHAR2
       IS
       v_str VARCHAR2(32767) := p_str;
       BEGIN
          IF (p_enc_by IS NULL)
          THEN
             RETURN p_str;
          ELSE
            IF SUBSTR(p_str,-1) = p_enc_by THEN
               v_str := SUBSTR(p_str,1,LENGTH(p_str)-1);
            END IF;
            IF SUBSTR(p_str,1,1) = p_enc_by THEN
               v_str := SUBSTR(v_str,2);
            END IF; 
            RETURN REPLACE (v_str,
                             p_enc_by || p_enc_by,
                             p_enc_by
          END IF;
       END de_quote;
       PROCEDURE parse (p_str IN VARCHAR2, p_enc_by IN VARCHAR2, p_sep IN VARCHAR2)
       IS
          l_n          NUMBER   DEFAULT 1;
          l_in_quote   BOOLEAN  DEFAULT FALSE;
          l_ch         NCHAR (1);
          l_len        NUMBER   DEFAULT NVL (LENGTH (p_str), 0);
       BEGIN
          IF (l_len = 0)
          THEN
             RETURN;
          END IF;
          g_words := g_empty;
          g_words (1) := NULL;
          FOR i IN 1 .. l_len
          LOOP
             l_ch := SUBSTR (p_str, i, 1);
             IF (l_ch = p_enc_by)
             THEN
                l_in_quote := NOT l_in_quote;
             END IF;
             IF (l_ch = p_sep AND NOT l_in_quote)
             THEN
                l_n := l_n + 1;
                g_words (l_n) := NULL;
             ELSE
                g_words (l_n) := g_words (l_n) || l_ch;
             END IF;
          END LOOP;
          g_words (l_n) := de_quote (g_words (l_n), CHR(10));
          g_words (l_n) := de_quote (g_words (l_n), CHR(13));
          FOR i IN 1 .. l_n
          LOOP
             g_words (i) := de_quote (g_words (i), p_enc_by);
          END LOOP;
       END parse;
    Author: Oleg Lihvoinen
    Company: DbSWH
    Changes:
    10.02.2011, There was a miscalculation of the file line last position in case it is the end of file
       PROCEDURE upload (p_file_name VARCHAR2, p_collection_name VARCHAR2, p_enc_by IN VARCHAR2, p_sep_by IN VARCHAR2, p_rows NUMBER)
       IS
          v_blob_data    BLOB;
          v_clob_data    CLOB;
          v_clob_len     NUMBER;
          v_position     NUMBER;
          v_char         NCHAR (1);
          c_chunk_len    NUMBER           := 1;
          v_line         VARCHAR2 (32767) := NULL;
          v_data_array   vcarray;
          v_rows         NUMBER           := 0;
          n_seq          NUMBER           := 1;
          dest_offset    NUMBER           := 1;
          src_offset     NUMBER           := 1;
          amount         INTEGER          := DBMS_LOB.lobmaxsize;
          blob_csid      NUMBER           := DBMS_LOB.default_csid;
          lang_ctx       INTEGER          := DBMS_LOB.default_lang_ctx;
          warning        INTEGER;
          l_sep          VARCHAR2(100)    := CASE WHEN p_sep_by = '\t' THEN chr(9) ELSE p_sep_by END;
       BEGIN
          htmldb_collection.create_or_truncate_collection
                                          (p_collection_name      => p_collection_name);
          -- Read blob from wwv_flow_files
          SELECT blob_content
            INTO v_blob_data
            FROM wwv_flow_files
           WHERE NAME = p_file_name;
          v_position := 1;
          DBMS_LOB.createtemporary (lob_loc      => v_clob_data,
                                    CACHE        => TRUE,
                                    dur          => DBMS_LOB.SESSION
          DBMS_LOB.converttoclob (v_clob_data,
                                  v_blob_data,
                                  amount,
                                  dest_offset,
                                  src_offset,
                                  blob_csid,
                                  lang_ctx,
                                  warning
          v_clob_len := DBMS_LOB.getlength (v_clob_data);
          IF v_clob_len = 0 THEN
             RETURN;
          END IF;
          WHILE (v_position <= v_clob_len + 1)
          LOOP
             v_char := DBMS_LOB.SUBSTR (v_clob_data, c_chunk_len, v_position);
             v_line := v_line || v_char;
             v_position := v_position + c_chunk_len;
             -- When the whole line is retrieved and not end of file or end of file
             IF v_char = CHR (10) AND v_position < v_clob_len OR v_position = v_clob_len + 1
             THEN
                parse (p_str => v_line, p_enc_by => p_enc_by, p_sep => l_sep);
                v_data_array := g_words;
                FOR i IN 1..g_words.count LOOP
                   IF i <= 50 THEN
                      v_data_array(i) := g_words(i);
                   ELSE
                      exit;
                   END IF;
                END LOOP;
                FOR i IN g_words.count + 1..50 LOOP
                   v_data_array(i) := null;
                END LOOP;           
                v_rows := v_rows + 1;
                -- exit if uploaded specified number of rows
                IF p_rows IS NOT NULL AND v_rows > p_rows THEN
                   EXIT;
                END IF;
                -- Store data to collection
                n_seq :=
                   htmldb_collection.add_member
                                         (p_collection_name      => p_collection_name,
                                          p_c001                 => v_data_array
                                                                               (1),
                                          p_c002                 => v_data_array
                                                                               (2),
                                          p_c003                 => v_data_array
                                                                               (3),
                                          p_c004                 => v_data_array
                                                                               (4),
                                          p_c005                 => v_data_array
                                                                               (5),
                                          p_c006                 => v_data_array
                                                                               (6),
                                          p_c007                 => v_data_array
                                                                               (7),
                                          p_c008                 => v_data_array
                                                                               (8),
                                          p_c009                 => v_data_array
                                                                               (9),
                                          p_c010                 => v_data_array
                                                                               (10),
                                          p_c011                 => v_data_array
                                                                               (11),
                                          p_c012                 => v_data_array
                                                                               (12),
                                          p_c013                 => v_data_array
                                                                               (13),
                                          p_c014                 => v_data_array
                                                                               (14),
                                          p_c015                 => v_data_array
                                                                               (15),
                                          p_c016                 => v_data_array
                                                                               (16),
                                          p_c017                 => v_data_array
                                                                               (17),
                                          p_c018                 => v_data_array
                                                                               (18),
                                          p_c019                 => v_data_array
                                                                               (19),
                                          p_c020                 => v_data_array
                                                                               (20),
                                          p_c021                 => v_data_array
                                                                               (21),
                                          p_c022                 => v_data_array
                                                                               (22),
                                          p_c023                 => v_data_array
                                                                               (23),
                                          p_c024                 => v_data_array
                                                                               (24),
                                          p_c025                 => v_data_array
                                                                               (25),
                                          p_c026                 => v_data_array
                                                                               (26),
                                          p_c027                 => v_data_array
                                                                               (27),
                                          p_c028                 => v_data_array
                                                                               (28),
                                          p_c029                 => v_data_array
                                                                               (29),
                                          p_c030                 => v_data_array
                                                                               (30),
                                          p_c031                 => v_data_array
                                                                               (31),
                                          p_c032                 => v_data_array
                                                                               (32),
                                          p_c033                 => v_data_array
                                                                               (33),
                                          p_c034                 => v_data_array
                                                                               (34),
                                          p_c035                 => v_data_array
                                                                               (35),
                                          p_c036                 => v_data_array
                                                                               (36),
                                          p_c037                 => v_data_array
                                                                               (37),
                                          p_c038                 => v_data_array
                                                                               (38),
                                          p_c039                 => v_data_array
                                                                               (39),
                                          p_c040                 => v_data_array
                                                                               (40),
                                          p_c041                 => v_data_array
                                                                               (41),
                                          p_c042                 => v_data_array
                                                                               (42),
                                          p_c043                 => v_data_array
                                                                               (43),
                                          p_c044                 => v_data_array
                                                                               (44),
                                          p_c045                 => v_data_array
                                                                               (45),
                                          p_c046                 => v_data_array
                                                                               (46),
                                          p_c047                 => v_data_array
                                                                               (47),
                                          p_c048                 => v_data_array
                                                                               (48),
                                          p_c049                 => v_data_array
                                                                               (49),
                                          p_c050                 => v_data_array
                                                                               (50)                                                                          
                -- Clear the line
                v_line := NULL;
             END IF;
          END LOOP;
       END;
    END;In my apps, I save these straight into a table rather than an APEX collection because the number of columns can be longer than 50.
    I want to find out how can replace these line break inside a column to a space.
    If any one has any ideas, please let me know.
    Thanks a lot in advance.
    Ann

    Ann586341 wrote:
    I think the code split the whole thing by this line
    -- When the whole line is retrieved and not end of file or end of file
    IF v_char = CHR (10) AND v_position < v_clob_len OR v_position = v_clob_len + 1
    THEN
    Yes, exactly. That piece of code believes all CHR(10) occurences are record delimiters.
    It is not smart enough to recognize that a CHR(10) within quotation marks are part of the data.
    Optimally a solution should keep the CHR(10) rather than replacing with spaces, but that will be a bigger rewrite of the UTL_CSV code ;-)
    If you are happy with replacing with spaces, a "simple" solution could be something like:
    Declare a boolean variable in upload procedure:
    v_within_text_column   boolean := false;And use it like this:
          WHILE (v_position <= v_clob_len + 1)
          LOOP
             v_char := DBMS_LOB.SUBSTR (v_clob_data, c_chunk_len, v_position);
             IF v_char = '"' THEN
               v_within_text_column := NOT v_within_text_column;
             ELSIF v_char = CHR(10) AND v_within_text_column THEN
               v_char := ' ';
             END IF;
             v_line := v_line || v_char;
             v_position := v_position + c_chunk_len;
             -- When the whole line is retrieved and not end of file or end of file
             IF v_char = CHR (10) AND v_position < v_clob_len OR v_position = v_clob_len + 1
             THEN
               v_within_text_column := false; -- To be safe always set this on "true" linebreaks
    {code}
    +(This is untested code just written here in the text editor.)+
    It should work by toggling a flag whether you are "within" the quotes or not and then replacing CHR(10) with a space if you are within a text column.
    This way we avoid having to go through the clob more than once (it is enough that this code walks the clob one character at a time...)
    It will not handle if the clob contains situations like:
    {code}
    abc,123,"This is a text with a quote from a man who said \"To Be,
    or Not To Be\" some hundred years ago",123,xyz
    {code}
    Escaped quotes would need separate attention ;-)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Hiding a non-breaking hyphen

    I'm updating an edit from 2009 and cannot fathom how I managed to make a hyphen not show.  d-oh!
    I have applied a modified text animation "fly out by words" preset to a string of words.  These fly towards camera in apparent 3D.  Hyphenated words will stay grouped.  Those not hyphenated will animate independently. 
    In 2009 I found a way of concealing the hyphen so the joined words appear unhyphenated.  AE will not permit me to select no fill to both outline and fill, and I cannot adjust transparency to a single character. 
    Help!  I cannot recall how I did this 5 yeas ago.
    I would also like to add a depth of field effect to the camera so that the text flies into focus.  The issue is that this is a 2D effect creating the allusion of 3D - so the text reminds in one plane.  Any bright ideas of how to fake DoF would be welcome.
    Thanks in advance.

    To enable Depth of Field you need to add a camera. You don't have to animate it, just add it. There's nothing to it.
    If you want to fake it you can add an expression to the blur radius of something like Camera Lens Blur. If your expression divides the Z position of the layer by some factor then the farther away the layer is from Z = 0, the  more blurry it gets. Throw in an if statement to fix the problem that happens when you get negative numbers and you've got something like this:
    z = position[2];
    iris = 4;
    if (z >= 0)  {
         b = z/iris}
    else
    b = z/iris * -1
    z is the position of the layer in Z
    iris is something like the aperture of the lens. 4 seems to give some nice results when the layer moves about 500 pixels in Z. Iris works like the aperture on a camera 4 gives a shallow depth of field 16 gives a deeper depth of field just like a camera lens.
    The if statement says if Z is greater than or equal to zero then divide the z value by the iris value, but if the z value is not greater than or equal to zero, in other words, divide the z position by the iris value and then multiply that number by negative one to turn it to a positive value.
    EZ PZ. You could class up this expression by adding an Expression Control Slider and making iris = effect("iris")("Slider");
    If you use a slider you will have to be careful to not set the slider to zero or animate the value to zero of you'll get a divide by zero error. You could also fix that by modifying the expression with an if statement.
    Here's an animation preset from my collection:  fakeDOF.ffx

  • How to handle non - conformed Dimensions

    Hi All...
    I have a small requirement where i have two facts and three dimensions and the joins are like below
    Fact1 joined with Dim1, dim2
    Fact2 Joined with Dim1, Dim2, Dim3
    When ever i pull the column from dim3 the report is throwing error...
    Is there any way that we can handle this kind of scenario

    the report is throwing error...?
    Thanks,
    Saichand

  • SQL Server 2012 Management Studio:In the Database, how to print out or export the old 3 dbo Tables that were created manually and they have a relationship for 1 Parent table and 2 Child tables?How to handle this relationship in creating a new XML Schema?

    Hi all,
    Long time ago, I manually created a Database (APGriMMRP) and 3 Tables (dbo.Table_1_XYcoordinates, dbo.Table_2_Soil, and dbo.Table_3_Water) in my SQL Server 2012 Management Studio (SSMS2012). The dbo.Table_1_XYcoordinates has the following columns: file_id,
    Pt_ID, X, Y, Z, sample_id, Boring. The dbo.Table_2_Soil has the following columns: Boring, sample_date, sample_id, Unit, Arsenic, Chromium, Lead. The dbo.Table_3_Water has the following columns: Boring, sample_date, sample_id, Unit, Benzene, Ethylbenzene,
    Pyrene. The dbo.Table_1_XYcoordinates is a Parent Table. The dbo.Table_2_Soil and the dbo.Table_3_Water are 2 Child Tables. The sample_id is key link for the relationship between the Parent Table and the Child Tables.
    Problem #1) How can I print out or export these 3 dbo Tables?
    Problem #2) If I right-click on the dbo Table, I see "Start PowerShell" and click on it. I get the following error messages: Warning: Failed to load the 'SQLAS' extension: An exception occurred in SMO while trying to manage a service. 
    --> Failed to retrieve data for this request. --> Invalid class.  Warning: Could not obtain SQL Server Service information. An attemp to connect to WMI on 'NAB-WK-02657306' failed with the following error: An exception occurred in SMO while trying
    to manage a service. --> Failed to retrieve data for this request. --> Invalid class.  .... PS SQLSERVER:\SQL\NAB-WK-02657306\SQLEXPRESS\Databases\APGriMMRP\Table_1_XYcoordinates>   What causes this set of error messages? How can
    I get this problem fixed in my PC that is an end user of the Windows 7 LAN System? Note: I don't have the regular version of Microsoft Visual Studio 2012 in my PC. I just have the Microsoft 2012 Shell (Integrated) program in my PC.
    Problem #3: I plan to create an XML Schema Collection in the "APGriMMRP" database for the Parent Table and the Child Tables. How can I handle the relationship between the Parent Table and the Child Table in the XML Schema Collection?
    Problem #4: I plan to extract some results/data from the Parent Table and the Child Table by using XQuery. What kind of JOIN (Left or Right JOIN) should I use in the XQuerying?
    Please kindly help, answer my questions, and advise me how to resolve these 4 problems.
    Thanks in advance,
    Scott Chang    

    In the future, I would recommend you to post your questions one by one, and to the appropriate forum. Of your questions it is really only #3 that fits into this forum. (And that is the one I will not answer, because I have worked very little with XSD.)
    1) Not sure what you mean with "print" or "export", but when you right-click a database, you can select Tasks from the context menu and in this submenu you find "Export data".
    2) I don't know why you get that error, but any particular reason you want to run PowerShell?
    4) If you have tables, you query them with SQL, not XQuery. XQuery is when you query XML documents, but left and right joins are SQL things. There are no joins in XQuery.
    As for left/right join, notice that these two are equivalent:
    SELECT ...
    FROM   a LEFT JOIN b ON a.col = b.col
    SELECT ...
    FROM   b RIGHT JOIN a ON a.col = b.col
    But please never use RIGHT JOIN - it gives me a headache!
    There is nothing that says that you should use any of the other. In fact, if you are returning rows from parent and child, I would expect an inner join, unless you want to cater for parents without children.
    Here is an example where you can study the different join types and how they behave:
    CREATE TABLE apple (a int         NOT NULL PRIMARY KEY,
                        b varchar(23) NOT NULL)
    INSERT apple(a, b)
       VALUES(1, 'Granny Smith'),
             (2, 'Gloster'),
             (4, 'Ingrid-Marie'),
             (5, 'Milenga')
    CREATE TABLE orange(c int        NOT NULL PRIMARY KEY,
                        d varchar(23) NOT NULL)
    INSERT orange(c, d)
       VALUES(1, 'Agent'),
             (3, 'Netherlands'),
             (4, 'Revolution')
    SELECT a, b, c, d
    FROM   apple
    CROSS  JOIN orange
    SELECT a, b, c, d
    FROM   apple
    INNER  JOIN orange ON apple.a = orange.c
    SELECT a, b, c, d
    FROM   apple
    LEFT   OUTER JOIN orange ON apple.a = orange.c
    SELECT a, b, c, d
    FROM   apple
    RIGHT  OUTER JOIN orange ON apple.a = orange.c
    SELECT a, b, c, d
    FROM   apple
    FULL OUTER JOIN orange ON apple.a = orange.c
    go
    DROP TABLE apple, orange
    Erland Sommarskog, SQL Server MVP, [email protected]

  • How to handle repeat managed-property in faces-config.xml?

    Hi guys,
    My configuration is like below:
        <managed-bean>
            <managed-bean-name>updateAudioSystemForm</managed-bean-name>
            <managed-bean-class>com.stufftolet.webapp.action.posting.update.consumerElectronic.UpdateAudioSystemForm</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
            <managed-property>
                <property-name>postingManager</property-name>
                <value>#{postingManager}</value>
            </managed-property>
            <managed-property>
              <property-name>postId</property-name>
              <value>#{param.postId}</value>
            </managed-property>     
            <managed-property>
              <property-name>categoryId</property-name>
              <value>#{param.categoryId}</value>
            </managed-property>
            <managed-property>
              <property-name>parentCategoryId</property-name>
              <value>#{param.parentCategoryId}</value>
            </managed-property>          
            <managed-property>
              <property-name>rootCategoryId</property-name>
              <value>#{param.rootCategoryId}</value>
            </managed-property>                    
        </managed-bean>
        <managed-bean>
            <managed-bean-name>updateCamcorderForm</managed-bean-name>
            <managed-bean-class>com.stufftolet.webapp.action.posting.update.consumerElectronic.UpdateCamcorderForm</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
            <managed-property>
                <property-name>postingManager</property-name>
                <value>#{postingManager}</value>
            </managed-property>
            <managed-property>
              <property-name>postId</property-name>
              <value>#{param.postId}</value>
            </managed-property>     
            <managed-property>
              <property-name>categoryId</property-name>
              <value>#{param.categoryId}</value>
            </managed-property>
            <managed-property>
              <property-name>parentCategoryId</property-name>
              <value>#{param.parentCategoryId}</value>
            </managed-property>          
            <managed-property>
              <property-name>rootCategoryId</property-name>
              <value>#{param.rootCategoryId}</value>
            </managed-property>                    
        </managed-bean>
        <managed-bean>
            <managed-bean-name>updateDigitalCameraForm</managed-bean-name>
            <managed-bean-class>com.stufftolet.webapp.action.posting.update.consumerElectronic.UpdateDigitalCameraForm</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
            <managed-property>
                <property-name>postingManager</property-name>
                <value>#{postingManager}</value>
            </managed-property>
            <managed-property>
              <property-name>postId</property-name>
              <value>#{param.postId}</value>
            </managed-property>     
            <managed-property>
              <property-name>categoryId</property-name>
              <value>#{param.categoryId}</value>
            </managed-property>
            <managed-property>
              <property-name>parentCategoryId</property-name>
              <value>#{param.parentCategoryId}</value>
            </managed-property>          
            <managed-property>
              <property-name>rootCategoryId</property-name>
              <value>#{param.rootCategoryId}</value>
            </managed-property>                    
        </managed-bean> as u see, all the managed-bean-class contain the same child managed-property. So is there anyway I can shortern this ? Thanks in advance !
    cheers,
    Mark

    As you see I don't really understand what have you seen so can you pls show me in detail, thanks !

  • How to insert a non-breaking space in a reference page?

    Hello all,
    Is it possible to insert a non-breaking space in a reference page? I want to control the TOC numbering so that page numbers don't break at the hyphen:
    In my reference page, I have the following TOC definition:
    <$paratext> <$chapnum>-<$pagenum>
    Replacing the hyphen with \+ doesn't seem to work.
    Thanks!
    Sue

    Sue,
    The sequence \+ is used in dialog boxes. Try typing the nonbreaking hyphen as
    Esc hyphen h
    Press the keys in sequence. Do not hold the Esc key down while you type the others.
    A nonbreaking space is
    Esc space h
    OR
    Control+space
    Hope this helps,
    Van

Maybe you are looking for

  • How to set table alternating color

    how do i set the properties of table with alternating color properties : design : alternating   it is like normal table , although i have change the properties of design to alternating..... pls advice

  • Can't install software on disk for unkown reason?

    I'm trying to install QuickTime Broadcaster. When the installer gets to the "Select Destination" part, it shows my HD with an exclamation point in a red octagon, and I get the error message: You cannot install QuickTime Broadcaster 1.5.1 on this volu

  • How do I play an AVI file on LabView 6.1 for windows 2000?

    I have tried inputting the command C:\Windows\mplayer.exe /play /close and the program runs but the video does not play on WMP.

  • CF8 preservedata: all checkboxes checking

    When using cfform's preservedata attribute we're having a problem with checkboxes. If no items in a group are selected, no items are selected when the page reloads. If any items are selected, ALL items in the group are selected when the page reloads.

  • HT1923 iTunes won't start up or update.

    I tried updating iTunes on my laptop, and it goes so far and it tells me that there is an error. It reads, iTunes must be reinstalled or that I should connect the programs support team. If i were to uninstall iTunes, will all of my music be deleted?