Extracting various bits of information from a string

Hi,
I am interested in extracting various pieces of information from strings (which were originally email bodies). For example email addresses (that are in the body of the email not the "from" field), phone numbers (which could have spaces between, international formats/conventions, ie not all numbers), profession (to match against a list I have), etc etc.
I am expecting that I would need to use Regex to find emails and phone numbers, and maybe tokenizing the string to match against my list of professions.
So I am more interested in some high level suggestions of how I should go about this.
In most cases, the source of the emails will be from 3 known sources. So in these case I will have a pretty good idea of the format/template that the response's will follow ( ie ".... name is XXXX XXXX ....." ) . This would then make extracting the useful information much easier. However, I need to allow for emails from unknown sources where nothing would be known about the format of the email.
Any help/suggestions/info would be appreciated.
The Whale

Thanks.
Re: function object; You tip about the function object sounds like a very good idea. I have been thinking about the best way to do this and this sounds like a good way to do it.
Re: Regex - I have not used Regex much but I am assuming it wont be hard to find or create Regex expressions to find phone numbers and email addresses. Although as you say, names could be hard. Although in this case I will just have to rely on locations in known templates.
Thanks again,
:)

Similar Messages

  • Can I extract particular bits of information from an iTunes backup?

    Is there a way to extract particular information about stuff like contacts, notes or reminders from a backup in iTunes?

    Not by design, try this Google search and explore the options before making a purchase.
    tt2

  • How to extract text and image information from postscript file

    I want to write a programe,and extract text and image information from postscript file using Java.Is it possible? How to extract ?
    Thank!

    First of all, PostScript is not a "text" file. It can and often does contain binary data. Since PostScript streams often contain nested procedures, unless you process the procedure definitions and can "execute" them, you cannot simply "scan" a file to get what you want. No, I can't talk about this in detail since it is quite complex. But Adobe does have the
    PostScript Language Reference Manual on-line for download at
    . Look that over and you will have a fairly healthy respect as to the task involved.
    - Dov

  • Sql Query need to extract the Work Flow information from Hyperion Planning

    Can Any one give me the sql query to extract the Work flow from Hyperion Planning in 11.1.2.1.
    I can extract from the Hyperion Planning but it is not in required format again I need to do lot of formating. I need the information as per the flow structure is showing linke in one perticular planning unit in all coloumn format. Hence only sql query will help me to extract this kind of information. could any one provide the sql query to extract this kind of request.
    Thanks in Advance.
    Edited by: 987185 on Feb 9, 2013 10:57 PM

    If you have a look at the data models in - http://www.oracle.com/technetwork/middleware/bi-foundation/epm-data-models-11121-354684.zip
    There is the structure of the planning application tables, have a look at the HSP_PM_* tables
    Alternatively you can look at extracting the information using LCM.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Extracting X.509 certificate information from OSB/OWSM

    Hello everyone,
    I'm using SOA suite 11gR1 and I'm creating a proxy service with an OWSM policy ( oracle/wss11_x509_token_with_message_protection_service_policy ) . I'd like to know how to extract the certificate details from the incoming message so my Web Services can acess them with something like the WebServicesContext interface.
    Thanks !

    I am working on this same scenario as well (and agree that OWSM documentation is incomplete for this important use case). Vikas Jain provides some further explanation of Verify Signature in a blog entry: http://ws-security.blogspot.com/2007/06/faq-owsm-1013-what-is-use-of-cerificate.html . Essentially he clarifies that the Verify Signature policy step is doing two different functions: 1) validating the signature using the public cert passed in the request, 2) validating that said public cert is actually trusted by the server (directly or through a trusted CA).
    Unfortunately, even with this assistance, I have yet to get OWSM to work correctly using the X.509 certificate token profile for authentication purposes. OWSS does work for me but the desire is to externalize this security function to OWSM (outside of the service container).
    Any information you find out appreciated.
    Todd

  • How can i extract using while the time from the string ?

    First time how can i extract the time as string ?
    And second how can i extract the time as DateTime.Now ?
    public static void ExtractDateTime()
    htmltoextract = new Uri("http://test.com");
    client = new WebClient();
    f = client.DownloadString(htmltoextract);
    client.Dispose();
    int index = 0;
    while (index != -1)
    int t = f.IndexOf(firstTag);
    int g = f.IndexOf(lastTag);
    a = f.Substring(t + firstTag.Length, g - t - 8);
    The string look like this: thisisateststring201309202145andthenextimeinthestringis201309202130andthelastofthisexampletimeinthisstringis201309202115
    What i need to do is first time to extract the time as string to a List<string> like this:
    index 0 201309202145
    index 1 201309202130
    index 2 201309202115
    The second time to extract the times as this time format: YYYYMMDDhhmm and also to add the times to a List.
    First time and second time i mean first example and second example. To use my code but first time to extract it as strings second example as the format of YYYYMMDDhhmm
    And i need to use the while and indexof and substring in this cases.

    Is the region always going to be "eu" or are you going to have more than one region.  Since you are reading a string DateTime from different timezone than the computer you are reading the data you have to convert to a different timezone. 
    It looks like you have at least 'is' and 'eu' for regions.  I don't know what offsets you need so try something like this.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Globalization;
    using System.IO;
    namespace ConsoleApplication1
    class Program
    static void Main(string[] args)
    string input = File.ReadAllText(@"c:\temp\test.txt");
    string pattern1 = @"imageUrls = \[[^\]]*\]";
    Regex ex1 = new Regex(pattern1, RegexOptions.Singleline);
    string pattern2 = @"region=(?'region'[^&]*)&time=(?'time'\d{12})";
    Match match1 = ex1.Match(input);
    Regex ex2 = new Regex(pattern2, RegexOptions.Singleline);
    MatchCollection matches2 = ex2.Matches(match1.Value);
    IFormatProvider provider = CultureInfo.InvariantCulture;
    List<DateTime> dateTime = new List<DateTime>();
    foreach (Match match2 in matches2)
    string region = match2.Groups["region"].Value;
    DateTime dt = DateTime.ParseExact(match2.Groups["time"].Value, "yyyyMMddHHmm", provider);
    switch (region)
    case "eu" :
    dt.AddHours(1);
    break;
    case "is":
    dt.AddHours(-1);
    break;
    dateTime.Add(dt);

  • Extract x amount of words from a string

    hi all just wondered if some can help me with this
    String mySting = "This is a test String"
    getInput();   // this method returns a string and works
    getNoOfWordsInputted(); // returns int of words in the stringthis is where I need the help
    I now need to extract getNoOfWords inputted from myString
    ie such that if I input "this is " true will be returned
    I can implment the following
    if (getInput.equals(myString)){
    // do Something
    }

    Still not quite sure what you're after, but if you want to see if the target string starts with a candidate substring, just use the startsWith method.
    if (example.startsWith(sub)) ...
    or, you can still use the indexOf method, just check for a return value of 0, meaning the index of was at the beginning of the string.
    if (example.indexOf(sub) == 0) ...

  • I am reading from an instrument a 1D string array of numbers in ascii. I want to be extract the actual data values from the string. How do I do that?

    labview 6i. Using sr785 instrument.

    Two ways. Use Fract/Exp to Number function on the Strin>Strin Number Conversion palette. It accepts both individual or strin array inputs. Wire your string array in an get an array of doubles out. You can also use Scan From String on the String palette inside of a for loop. The for loop will autoindex the string array in and autoindex an array of doubles out.
    Attachments:
    string_to_double.jpg ‏10 KB

  • Extract either string1 or string2 from another string

    I have a string of data named "dump" with 500 or more bytes of data that will contain within it either (along with other data)  the word "circle" or  the word "square". (but not both)
    I need to pull which ever one of these two words that is in the string "dump" and to create a string called "type" that contains only  that word.
    Is there an easy way to do this with a line of code or two?
    thanks

    if (FindPattern (dump, 0, -1, "circle", 0, 0) >= 0)
       strcpy (typem "circle");
    else if (FindPattern (dump, 0, -1, "square", 0, 0) >= 0)
       strcpy (type, "square");
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Extract information from Javadoc files

    I want to extract class, method & parameter information from the javadoc files (in html format, not from source code).
    Are there any existing API's / opensource projects that would help me do this.
    I have tried searching google and the forums, but I end up finding results related to extracting javadoc info from the source files. However I am interested in recovering this information from the generated HTML files.
    Any pointers would be helpful.
    - Ajay

    The situation is like this: I have a stub jar file alongwith the documentation in HTML form. The classes in the jar file do not have any debug information so eclipse can not extract any parameter name information from the jar file. It does extract some info from the documentation, but quite a lot of the variables are still not named.
    It becomes a tedious job to work with the API when you can not figure out which parameter refers to what. I have to often lookup the documentation to figure it out.
    My plan is to recreate the stub jar by decompiling it and merging the parameter name information derived from the html documentation to create create source files. Then I can recompile them with debugging enabled to generate class files.
    Any ideas or open source projects that would let me do this quickly?

  • How can I extract structure information from registered XSDs ?

    Hello,
    I am trying to extract hierarchy and type information from registered XML schemas which include other XML Schemas, in a single SQL query.
    In essence I would love to be able to write a query of the form
    SELECT *
      FROM XMLTABLE('//xs:element'
                    PASSING <the root schema object goes here>
                    COLUMNS   ELEM_NAME       VARCHAR2(63) PATH '@name'
                            , ELEM_REF        VARCHAR2(62) PATH '@ref'
                            , ELEM_TYPE       VARCHAR2(63) PATH '@type'
                            , MIN_OCCUR       VARCHAR2(15) PATH '@minOccurs'
                            , MAX_OCCUR       VARCHAR2(15) PATH '@maxOccurs'
                            , ANNOTATIONS     SYS.XMLTYPE  PATH 'xs:annotation'
                            , FXD_LENGTH      VARCHAR2(10) PATH '/xs:length/@value'
                            , MAX_LENGTH      VARCHAR2(10) PATH '/xs:maxLength/@value'
                            , MIN_INCLUSIVE   VARCHAR2(10) PATH '/xs:minInclusive/@value'
                            , MAX_INCLUSIVE   VARCHAR2(10) PATH '/xs:maxInclusive/@value'
                            , MIN_EXCLUSIVE   VARCHAR2(10) PATH '/xs:minExclusive/@value'
                            , MAX_EXCLUSIVE   VARCHAR2(10) PATH '/xs:minExclusive/@value'
                            , TOTAL_DIGITS    VARCHAR2(10) PATH '/xs:totalDigits/@value'
                            , FRACTION_DIGITS VARCHAR2(10) PATH '/xs:fractionDigits/@value'
                   )together with an indicator if each element is a leaf or not as well as its level and position information, by suitably expanding the appropriate type information from the (possibly) included XML Schemas (via schemaLocation).
    Does anybody know if there is a way to do this ?
    I will provide my sample XSD files if needs be ...
    Best Regards
    Filippos

    Have a look at the xdbutilities.zip packages... Probably all the info needed can be found in the code used there:
    http://www.oracle.com/technology/tech/xml/xmldb/Current/xdbutilities.zip

  • How to extract from a string ?

    Hello , I have this string and I need to extract 4 parts (in bold) from the string , my string is :
    '(invoice) dear client : tom cruise you Buy *408* from MENA.CA @ *6.93* 01/10/09 watheeqa'
    What is the best technique to do that?
    Thanks

    Hi,
    oais wrote:
    Hello , I have this string and I need to extract 4 parts (in bold) from the string , my string is :
    '(invoice) dear client : tom cruise you Buy *408* from MENA.CA @ *6.93* 01/10/09 watheeqa'
    What is the best technique to do that?
    ThanksThat depends on how you know the 4 parts are what you showed, and not
    '<b>(invoice) dear client: tom</b> cruise you Buy 408 from MENA.CA @ 6.93 01/10/09 watheeqa'
    or
    '<b>(invoice)</b> dear client: <b>tom cruise</b> you Buy 408 from MENA.CA <b>@</b> 6.93 01/10/09 <b>watheeqa</b>?'
    or
    '(invoice) dear client: <b>tom cruise</b> you Buy 408 from MENA.CA @ 6.93 <b>01/10/09 watheeqa</b>'
    Will there always be exactly four parts you need to pick?

  • Fault information from bpel process when exception happens

    How to extract all the fault information from bpel process when exception happens?
    Are there any other methods other than "ora:getFaultName(), ora:getFaultAsString()"
    When I use "ora:getFaultName(), ora:getFaultAsString()", I get the below message,so I am wondering whether
    I can get any more information about the exception as mentioned below - "detailed root cause described in the exception message" -> how do I get it?
    Check the detailed root cause described in the exception message text and verify that the XPath query is correct.

    Hi,
    As far as I know, it's not possible to get the exception message with a catch all. You need to catch each exception separately, and the you will be able to get each message.
    Regards
    Gustavo

  • Is there a way to extract information from a registered schema ?

    Hello,
    with the aid of the XSOM project in java.net, and using the following after I loaded the appropriate jars and creating the wrapper PL/SQL
    CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED GMS10.XSOMNAVIGATOR AS
    import java.util.Vector;
    import com.sun.xml.xsom.XSComplexType;
    import com.sun.xml.xsom.XSElementDecl;
    import com.sun.xml.xsom.XSFacet;
    import com.sun.xml.xsom.XSModelGroup;
    import com.sun.xml.xsom.XSModelGroupDecl;
    import com.sun.xml.xsom.XSParticle;
    import com.sun.xml.xsom.XSRestrictionSimpleType;
    import com.sun.xml.xsom.XSSimpleType;
    import com.sun.xml.xsom.XSTerm;
    import com.sun.xml.xsom.parser.XSOMParser;
    public class XSOMNavigator
        public static class SimpleTypeRestriction
            public String[] enumeration = null;
            public String   maxValue    = null;
            public String   minValue    = null;
            public String   length      = null;
            public String   maxLength   = null;
            public String   minLength   = null;
            public String[] pattern     = null;
            public String   totalDigits = null;
            public String toString()
                String enumValues = "";
                if (enumeration != null)
                    for(String val : enumeration)
                        enumValues += val + ", ";
                    enumValues = enumValues.substring(0, enumValues.lastIndexOf(','));
                String patternValues = "";
                if (pattern != null)
                    for(String val : pattern)
                        patternValues += "(" + val + ")|";
                    patternValues = patternValues.substring(0, patternValues.lastIndexOf('|'));
                String retval = "";
                retval += maxValue    == null ? "" : "[MaxValue  = "   + maxValue      + "]\t";
                retval += minValue    == null ? "" : "[MinValue  = "   + minValue      + "]\t";
                retval += maxLength   == null ? "" : "[MaxLength = "   + maxLength     + "]\t";
                retval += minLength   == null ? "" : "[MinLength = "   + minLength     + "]\t";
                retval += pattern     == null ? "" : "[Pattern(s) = "  + patternValues + "]\t";
                retval += totalDigits == null ? "" : "[TotalDigits = " + totalDigits   + "]\t";
                retval += length      == null ? "" : "[Length = "      + length        + "]\t";         
                retval += enumeration == null ? "" : "[Values = "      + enumValues    + "]\t";
                return retval;
        private static void initRestrictions(XSSimpleType xsSimpleType, SimpleTypeRestriction simpleTypeRestriction)
            XSRestrictionSimpleType restriction = xsSimpleType.asRestriction();
            if (restriction != null)
                Vector<String> enumeration = new Vector<String>();
                Vector<String> pattern     = new Vector<String>();
                for (XSFacet facet : restriction.getDeclaredFacets())
                    if (facet.getName().equals(XSFacet.FACET_ENUMERATION))
                        enumeration.add(facet.getValue().value);
                    if (facet.getName().equals(XSFacet.FACET_MAXINCLUSIVE))
                        simpleTypeRestriction.maxValue = facet.getValue().value;
                    if (facet.getName().equals(XSFacet.FACET_MININCLUSIVE))
                        simpleTypeRestriction.minValue = facet.getValue().value;
                    if (facet.getName().equals(XSFacet.FACET_MAXEXCLUSIVE))
                        simpleTypeRestriction.maxValue = String.valueOf(Integer.parseInt(facet.getValue().value) - 1);
                    if (facet.getName().equals(XSFacet.FACET_MINEXCLUSIVE))
                        simpleTypeRestriction.minValue = String.valueOf(Integer.parseInt(facet.getValue().value) + 1);
                    if (facet.getName().equals(XSFacet.FACET_LENGTH))
                        simpleTypeRestriction.length = facet.getValue().value;
                    if (facet.getName().equals(XSFacet.FACET_MAXLENGTH))
                        simpleTypeRestriction.maxLength = facet.getValue().value;
                    if (facet.getName().equals(XSFacet.FACET_MINLENGTH))
                        simpleTypeRestriction.minLength = facet.getValue().value;
                    if (facet.getName().equals(XSFacet.FACET_PATTERN))
                        pattern.add(facet.getValue().value);
                    if (facet.getName().equals(XSFacet.FACET_TOTALDIGITS))
                        simpleTypeRestriction.totalDigits = facet.getValue().value;
                if (enumeration.size() > 0)
                    simpleTypeRestriction.enumeration = enumeration.toArray(new String[] {});
                if (pattern.size() > 0)
                    simpleTypeRestriction.pattern = pattern.toArray(new String[] {});
        private static void printParticle(XSParticle particle, String occurs, String absPath, String indent)
            occurs = "  MinOccurs = " + particle.getMinOccurs() + ", MaxOccurs = " + particle.getMaxOccurs();
            XSTerm term = particle.getTerm();
            if (term.isModelGroup())
                printGroup(term.asModelGroup(), occurs, absPath, indent);   
            else if(term.isModelGroupDecl())
                printGroupDecl(term.asModelGroupDecl(), occurs, absPath, indent);   
            else if (term.isElementDecl())
                printElement(term.asElementDecl(), occurs, absPath, indent);
            else
        private static void printGroup(XSModelGroup modelGroup, String occurs, String absPath, String indent)
            System.out.println(indent + "[Start of " + modelGroup.getCompositor() + occurs + "]" );
            for (XSParticle particle : modelGroup.getChildren())
                printParticle(particle, occurs, absPath, indent + "\t");
            System.out.println(indent + "[End of " + modelGroup.getCompositor() + "]");
        private static void printGroupDecl(XSModelGroupDecl modelGroupDecl, String occurs, String absPath, String indent)
            System.out.println(indent + "[Group " + modelGroupDecl.getName() + occurs + "]");
            printGroup(modelGroupDecl.getModelGroup(), occurs, absPath, indent);
        private static void printComplexType(XSComplexType complexType, String occurs, String absPath, String indent)
            System.out.println();
            XSParticle particle = complexType.getContentType().asParticle();
            if (particle != null)
                printParticle(particle, occurs, absPath, indent);
        private static void printSimpleType(XSSimpleType simpleType, String occurs, String absPath, String indent)
            SimpleTypeRestriction restriction = new SimpleTypeRestriction();
            initRestrictions(simpleType, restriction);
            System.out.println(restriction.toString());
        private static void printElement(XSElementDecl element, String occurs, String absPath, String indent)
            absPath += "/" + element.getName();
            System.out.print(indent + "[Element " + absPath + "   " + occurs + "] of type [" + element.getType().getBaseType().getName() + "]");
            if (element.getType().isComplexType())
                printComplexType(element.getType().asComplexType(), occurs, absPath, indent);
            else
                printSimpleType(element.getType().asSimpleType(), occurs, absPath, indent);
        public static void xsomNavigate(String xsdFile, String rootElement)
            String occurs  = "";
            String absPath = "";
            String indent  = "";
            try
                XSOMParser parser = new XSOMParser();
                parser.parse(xsdFile);
                printElement(parser.getResult().getSchema(1).getElementDecl(rootElement), occurs, absPath, indent);
            catch (Exception exp)
                exp.printStackTrace(System.out);
    /I obtained the following (correct) result
    [Element /CD026A   ] of type [anyType]
    [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
         [Group HEADER  MinOccurs = 1, MaxOccurs = 1]
         [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
              [Element /CD026A/SynIdeMES1     MinOccurs = 1, MaxOccurs = 1] of type [string][Values = UNOC]     
              [Element /CD026A/SynVerNumMES2     MinOccurs = 1, MaxOccurs = 1] of type [string][Values = 3]     
              [Element /CD026A/MesSenMES3     MinOccurs = 1, MaxOccurs = 1] of type [string][MaxLength = 70]     
              [Element /CD026A/SenIdeCodQuaMES4     MinOccurs = 0, MaxOccurs = 1] of type [string][MaxLength = 4]     
              [Element /CD026A/MesRecMES6     MinOccurs = 1, MaxOccurs = 1] of type [string][MaxLength = 35]     
              [Element /CD026A/RecIdeCodQuaMES7     MinOccurs = 0, MaxOccurs = 1] of type [string][MaxLength = 4]     
              [Element /CD026A/DatOfPreMES9     MinOccurs = 1, MaxOccurs = 1] of type [nonNegativeInteger][Pattern(s) = ([1-2][0-9]{3}[0][1-9][0][1-9])|([1-2][0-9]{3}[0][1-9][1|2][0-9])|([1-2][0-9]{3}[0][1-9][3][0|1])|([1-2][0-9]{3}[1][0-2][0][1-9])|([1-2][0-9]{3}[1][0-2][1|2][0-9])|([1-2][0-9]{3}[1][0-2][3][0|1])|([0-9]{2}[0][1-9][0][1-9])|([0-9]{2}[0][1-9][1|2][0-9])|([0-9]{2}[0][1-9][3][0|1])|([0-9]{2}[1][0-2][0][1-9])|([0-9]{2}[1][0-2][1|2][0-9])|([0-9]{2}[1][0-2][3][0|1])]     
              [Element /CD026A/TimOfPreMES10     MinOccurs = 1, MaxOccurs = 1] of type [string][Pattern(s) = ([0-1]{1}[0-9]{1}[0-5]{1}[0-9]{1})|([2]{1}[0-3]{1}[0-5]{1}[0-9]{1})]     [Length = 4]     
              [Element /CD026A/IntConRefMES11     MinOccurs = 1, MaxOccurs = 1] of type [string][MaxLength = 14]     
              [Element /CD026A/RecRefMES12     MinOccurs = 0, MaxOccurs = 1] of type [string][MaxLength = 14]     
              [Element /CD026A/RecRefQuaMES13     MinOccurs = 0, MaxOccurs = 1] of type [string][Length = 2]     
              [Element /CD026A/AppRefMES14     MinOccurs = 0, MaxOccurs = 1] of type [string][MaxLength = 14]     
              [Element /CD026A/PriMES15     MinOccurs = 0, MaxOccurs = 1] of type [string][MaxLength = 1]     
              [Element /CD026A/AckReqMES16     MinOccurs = 0, MaxOccurs = 1] of type [nonNegativeInteger][Values = 0, 1]     
              [Element /CD026A/ComAgrIdMES17     MinOccurs = 0, MaxOccurs = 1] of type [string][MaxLength = 35]     
              [Element /CD026A/TesIndMES18     MinOccurs = 0, MaxOccurs = 1] of type [nonNegativeInteger][Values = 0, 1]     
              [Element /CD026A/MesIdeMES19     MinOccurs = 1, MaxOccurs = 1] of type [string][MaxLength = 14]     
              [Element /CD026A/MesTypMES20     MinOccurs = 1, MaxOccurs = 1] of type [string][Values = CC004A, CC005A, CC007A, CC008A, CC009A, CC013A, CC014A, CC015A, CC016A, CC017A, CC019A, CC021A, CC023A, CC025A, CC026A, CC028A, CC029A, CC035A, CC043A, CC044A, CC045A, CC051A, CC054A, CC055A, CC058A, CC060A, CC062A, CC100A, CC102A, CC103A, CC224A, CC225A, CC228A, CC229A, CC231A, CC907A, CC917A, CD001A, CD002A, CD003A, CD006A, CD010A, CD018A, CD020A, CD024A, CD027A, CD030A, CD031A, CD032A, CD033A, CD034A, CD037A, CD038A, CD050A, CD059A, CD063A, CD104A, CD105A, CD106A, CD111A, CD112A, CD114A, CD115A, CD118A, CD200A, CD201A, CD203A, CD204A, CD205A, CD209A, CD411A, CD901A, CD904A, CD905A, CD906A, CD907A, CD912A, CD913A, CD914A, CD916A, CD931A, CD932A, AT004A, AT005A, AT007A, AT008A, AT009A, AT013A, AT014A, AT015A, AT016A, AT017A, AT019A, AT021A, AT023A, AT025A, AT026A, AT028A, AT029A, AT035A, AT043A, AT044A, AT045A, AT051A, AT054A, AT055A, AT058A, AT060A, AT062A, AT100A, AT102A, AT103A, AT224A, AT225A, AT228A, AT229A, AT231A, AT907A, AT917A, BE004A, BE005A, BE007A, BE008A, BE009A, BE013A, BE014A, BE015A, BE016A, BE017A, BE019A, BE021A, BE023A, BE025A, BE026A, BE028A, BE029A, BE035A, BE043A, BE044A, BE045A, BE051A, BE054A, BE055A, BE058A, BE060A, BE062A, BE100A, BE102A, BE103A, BE224A, BE225A, BE228A, BE229A, BE231A, BE907A, BE917A, CY004A, CY005A, CY007A, CY008A, CY009A, CY013A, CY014A, CY015A, CY016A, CY017A, CY019A, CY021A, CY023A, CY025A, CY026A, CY028A, CY029A, CY035A, CY043A, CY044A, CY045A, CY051A, CY054A, CY055A, CY058A, CY060A, CY062A, CY100A, CY102A, CY103A, CY224A, CY225A, CY228A, CY229A, CY231A, CY907A, CY917A, CZ004A, CZ005A, CZ007A, CZ008A, CZ009A, CZ013A, CZ014A, CZ015A, CZ016A, CZ017A, CZ019A, CZ021A, CZ023A, CZ025A, CZ026A, CZ028A, CZ029A, CZ035A, CZ043A, CZ044A, CZ045A, CZ051A, CZ054A, CZ055A, CZ058A, CZ060A, CZ062A, CZ100A, CZ102A, CZ103A, CZ224A, CZ225A, CZ228A, CZ229A, CZ231A, CZ907A, CZ917A, DE004A, DE005A, DE007A, DE008A, DE009A, DE013A, DE014A, DE015A, DE016A, DE017A, DE019A, DE021A, DE023A, DE025A, DE026A, DE028A, DE029A, DE035A, DE043A, DE044A, DE045A, DE051A, DE054A, DE055A, DE058A, DE060A, DE062A, DE100A, DE102A, DE103A, DE224A, DE225A, DE228A, DE229A, DE231A, DE907A, DE917A, DK004A, DK005A, DK007A, DK008A, DK009A, DK013A, DK014A, DK015A, DK016A, DK017A, DK019A, DK021A, DK023A, DK025A, DK026A, DK028A, DK029A, DK035A, DK043A, DK044A, DK045A, DK051A, DK054A, DK055A, DK058A, DK060A, DK062A, DK100A, DK102A, DK103A, DK224A, DK225A, DK228A, DK229A, DK231A, DK907A, DK917A, EE004A, EE005A, EE007A, EE008A, EE009A, EE013A, EE014A, EE015A, EE016A, EE017A, EE019A, EE021A, EE023A, EE025A, EE026A, EE028A, EE029A, EE035A, EE043A, EE044A, EE045A, EE051A, EE054A, EE055A, EE058A, EE060A, EE062A, EE100A, EE102A, EE103A, EE224A, EE225A, EE228A, EE229A, EE231A, EE907A, EE917A, ES004A, ES005A, ES007A, ES008A, ES009A, ES013A, ES014A, ES015A, ES016A, ES017A, ES019A, ES021A, ES023A, ES025A, ES026A, ES028A, ES029A, ES035A, ES043A, ES044A, ES045A, ES051A, ES054A, ES055A, ES058A, ES060A, ES062A, ES100A, ES102A, ES103A, ES224A, ES225A, ES228A, ES229A, ES231A, ES907A, ES917A, FI004A, FI005A, FI007A, FI008A, FI009A, FI013A, FI014A, FI015A, FI016A, FI017A, FI019A, FI021A, FI023A, FI025A, FI026A, FI028A, FI029A, FI035A, FI043A, FI044A, FI045A, FI051A, FI054A, FI055A, FI058A, FI060A, FI062A, FI100A, FI102A, FI103A, FI224A, FI225A, FI228A, FI229A, FI231A, FI907A, FI917A, FR004A, FR005A, FR007A, FR008A, FR009A, FR013A, FR014A, FR015A, FR016A, FR017A, FR019A, FR021A, FR023A, FR025A, FR026A, FR028A, FR029A, FR035A, FR043A, FR044A, FR045A, FR051A, FR054A, FR055A, FR058A, FR060A, FR062A, FR100A, FR102A, FR103A, FR224A, FR225A, FR228A, FR229A, FR231A, FR907A, FR917A, GB004A, GB005A, GB007A, GB008A, GB009A, GB013A, GB014A, GB015A, GB016A, GB017A, GB019A, GB021A, GB023A, GB025A, GB026A, GB028A, GB029A, GB035A, GB043A, GB044A, GB045A, GB051A, GB054A, GB055A, GB058A, GB060A, GB062A, GB100A, GB102A, GB103A, GB224A, GB225A, GB228A, GB229A, GB231A, GB907A, GB917A, GF004A, GF005A, GF007A, GF008A, GF009A, GF013A, GF014A, GF015A, GF016A, GF017A, GF019A, GF021A, GF023A, GF025A, GF026A, GF028A, GF029A, GF035A, GF043A, GF044A, GF045A, GF051A, GF054A, GF055A, GF058A, GF060A, GF062A, GF100A, GF102A, GF103A, GF224A, GF225A, GF228A, GF229A, GF231A, GF907A, GF917A, GP004A, GP005A, GP007A, GP008A, GP009A, GP013A, GP014A, GP015A, GP016A, GP017A, GP019A, GP021A, GP023A, GP025A, GP026A, GP028A, GP029A, GP035A, GP043A, GP044A, GP045A, GP051A, GP054A, GP055A, GP058A, GP060A, GP062A, GP100A, GP102A, GP103A, GP224A, GP225A, GP228A, GP229A, GP231A, GP907A, GP917A, GR004A, GR005A, GR007A, GR008A, GR009A, GR013A, GR014A, GR015A, GR016A, GR017A, GR019A, GR021A, GR023A, GR025A, GR026A, GR028A, GR029A, GR035A, GR043A, GR044A, GR045A, GR051A, GR054A, GR055A, GR058A, GR060A, GR062A, GR100A, GR102A, GR103A, GR224A, GR225A, GR228A, GR229A, GR231A, GR907A, GR917A, HU004A, HU005A, HU007A, HU008A, HU009A, HU013A, HU014A, HU015A, HU016A, HU017A, HU019A, HU021A, HU023A, HU025A, HU026A, HU028A, HU029A, HU035A, HU043A, HU044A, HU045A, HU051A, HU054A, HU055A, HU058A, HU060A, HU062A, HU100A, HU102A, HU103A, HU224A, HU225A, HU228A, HU229A, HU231A, HU907A, HU917A, IE004A, IE005A, IE007A, IE008A, IE009A, IE013A, IE014A, IE015A, IE016A, IE017A, IE019A, IE021A, IE023A, IE025A, IE026A, IE028A, IE029A, IE035A, IE043A, IE044A, IE045A, IE051A, IE054A, IE055A, IE058A, IE060A, IE062A, IE100A, IE102A, IE103A, IE224A, IE225A, IE228A, IE229A, IE231A, IE907A, IE917A, IT004A, IT005A, IT007A, IT008A, IT009A, IT013A, IT014A, IT015A, IT016A, IT017A, IT019A, IT021A, IT023A, IT025A, IT026A, IT028A, IT029A, IT035A, IT043A, IT044A, IT045A, IT051A, IT054A, IT055A, IT058A, IT060A, IT062A, IT100A, IT102A, IT103A, IT224A, IT225A, IT228A, IT229A, IT231A, IT907A, IT917A, LT004A, LT005A, LT007A, LT008A, LT009A, LT013A, LT014A, LT015A, LT016A, LT017A, LT019A, LT021A, LT023A, LT025A, LT026A, LT028A, LT029A, LT035A, LT043A, LT044A, LT045A, LT051A, LT054A, LT055A, LT058A, LT060A, LT062A, LT100A, LT102A, LT103A, LT224A, LT225A, LT228A, LT229A, LT231A, LT907A, LT917A, LU004A, LU005A, LU007A, LU008A, LU009A, LU013A, LU014A, LU015A, LU016A, LU017A, LU019A, LU021A, LU023A, LU025A, LU026A, LU028A, LU029A, LU035A, LU043A, LU044A, LU045A, LU051A, LU054A, LU055A, LU058A, LU060A, LU062A, LU100A, LU102A, LU103A, LU224A, LU225A, LU228A, LU229A, LU231A, LU907A, LU917A, LV004A, LV005A, LV007A, LV008A, LV009A, LV013A, LV014A, LV015A, LV016A, LV017A, LV019A, LV021A, LV023A, LV025A, LV026A, LV028A, LV029A, LV035A, LV043A, LV044A, LV045A, LV051A, LV054A, LV055A, LV058A, LV060A, LV062A, LV100A, LV102A, LV103A, LV224A, LV225A, LV228A, LV229A, LV231A, LV907A, LV917A, MC004A, MC005A, MC007A, MC008A, MC009A, MC013A, MC014A, MC015A, MC016A, MC017A, MC019A, MC021A, MC023A, MC025A, MC026A, MC028A, MC029A, MC035A, MC043A, MC044A, MC045A, MC051A, MC054A, MC055A, MC058A, MC060A, MC062A, MC100A, MC102A, MC103A, MC224A, MC225A, MC228A, MC229A, MC231A, MC907A, MC917A, MQ004A, MQ005A, MQ007A, MQ008A, MQ009A, MQ013A, MQ014A, MQ015A, MQ016A, MQ017A, MQ019A, MQ021A, MQ023A, MQ025A, MQ026A, MQ028A, MQ029A, MQ035A, MQ043A, MQ044A, MQ045A, MQ051A, MQ054A, MQ055A, MQ058A, MQ060A, MQ062A, MQ100A, MQ102A, MQ103A, MQ224A, MQ225A, MQ228A, MQ229A, MQ231A, MQ907A, MQ917A, MT004A, MT005A, MT007A, MT008A, MT009A, MT013A, MT014A, MT015A, MT016A, MT017A, MT019A, MT021A, MT023A, MT025A, MT026A, MT028A, MT029A, MT035A, MT043A, MT044A, MT045A, MT051A, MT054A, MT055A, MT058A, MT060A, MT062A, MT100A, MT102A, MT103A, MT224A, MT225A, MT228A, MT229A, MT231A, MT907A, MT917A, NL004A, NL005A, NL007A, NL008A, NL009A, NL013A, NL014A, NL015A, NL016A, NL017A, NL019A, NL021A, NL023A, NL025A, NL026A, NL028A, NL029A, NL035A, NL043A, NL044A, NL045A, NL051A, NL054A, NL055A, NL058A, NL060A, NL062A, NL100A, NL102A, NL103A, NL224A, NL225A, NL228A, NL229A, NL231A, NL907A, NL917A, PL004A, PL005A, PL007A, PL008A, PL009A, PL013A, PL014A, PL015A, PL016A, PL017A, PL019A, PL021A, PL023A, PL025A, PL026A, PL028A, PL029A, PL035A, PL043A, PL044A, PL045A, PL051A, PL054A, PL055A, PL058A, PL060A, PL062A, PL100A, PL102A, PL103A, PL224A, PL225A, PL228A, PL229A, PL231A, PL907A, PL917A, PT004A, PT005A, PT007A, PT008A, PT009A, PT013A, PT014A, PT015A, PT016A, PT017A, PT019A, PT021A, PT023A, PT025A, PT026A, PT028A, PT029A, PT035A, PT043A, PT044A, PT045A, PT051A, PT054A, PT055A, PT058A, PT060A, PT062A, PT100A, PT102A, PT103A, PT224A, PT225A, PT228A, PT229A, PT231A, PT907A, PT917A, RE004A, RE005A, RE007A, RE008A, RE009A, RE013A, RE014A, RE015A, RE016A, RE017A, RE019A, RE021A, RE023A, RE025A, RE026A, RE028A, RE029A, RE035A, RE043A, RE044A, RE045A, RE051A, RE054A, RE055A, RE058A, RE060A, RE062A, RE100A, RE102A, RE103A, RE224A, RE225A, RE228A, RE229A, RE231A, RE907A, RE917A, SE004A, SE005A, SE007A, SE008A, SE009A, SE013A, SE014A, SE015A, SE016A, SE017A, SE019A, SE021A, SE023A, SE025A, SE026A, SE028A, SE029A, SE035A, SE043A, SE044A, SE045A, SE051A, SE054A, SE055A, SE058A, SE060A, SE062A, SE100A, SE102A, SE103A, SE224A, SE225A, SE228A, SE229A, SE231A, SE907A, SE917A, SI004A, SI005A, SI007A, SI008A, SI009A, SI013A, SI014A, SI015A, SI016A, SI017A, SI019A, SI021A, SI023A, SI025A, SI026A, SI028A, SI029A, SI035A, SI043A, SI044A, SI045A, SI051A, SI054A, SI055A, SI058A, SI060A, SI062A, SI100A, SI102A, SI103A, SI224A, SI225A, SI228A, SI229A, SI231A, SI907A, SI917A, SK004A, SK005A, SK007A, SK008A, SK009A, SK013A, SK014A, SK015A, SK016A, SK017A, SK019A, SK021A, SK023A, SK025A, SK026A, SK028A, SK029A, SK035A, SK043A, SK044A, SK045A, SK051A, SK054A, SK055A, SK058A, SK060A, SK062A, SK100A, SK102A, SK103A, SK224A, SK225A, SK228A, SK229A, SK231A, SK907A, SK917A, CH004A, CH005A, CH007A, CH008A, CH009A, CH013A, CH014A, CH015A, CH016A, CH017A, CH019A, CH021A, CH023A, CH025A, CH026A, CH028A, CH029A, CH035A, CH043A, CH044A, CH045A, CH051A, CH054A, CH055A, CH058A, CH060A, CH062A, CH100A, CH102A, CH103A, CH224A, CH225A, CH228A, CH229A, CH231A, CH907A, CH917A, IS004A, IS005A, IS007A, IS008A, IS009A, IS013A, IS014A, IS015A, IS016A, IS017A, IS019A, IS021A, IS023A, IS025A, IS026A, IS028A, IS029A, IS035A, IS043A, IS044A, IS045A, IS051A, IS054A, IS055A, IS058A, IS060A, IS062A, IS100A, IS102A, IS103A, IS224A, IS225A, IS228A, IS229A, IS231A, IS907A, IS917A, NO004A, NO005A, NO007A, NO008A, NO009A, NO013A, NO014A, NO015A, NO016A, NO017A, NO019A, NO021A, NO023A, NO025A, NO026A, NO028A, NO029A, NO035A, NO043A, NO044A, NO045A, NO051A, NO054A, NO055A, NO058A, NO060A, NO062A, NO100A, NO102A, NO103A, NO224A, NO225A, NO228A, NO229A, NO231A, NO907A, NO917A, SJ004A, SJ005A, SJ007A, SJ008A, SJ009A, SJ013A, SJ014A, SJ015A, SJ016A, SJ017A, SJ019A, SJ021A, SJ023A, SJ025A, SJ026A, SJ028A, SJ029A, SJ035A, SJ043A, SJ044A, SJ045A, SJ051A, SJ054A, SJ055A, SJ058A, SJ060A, SJ062A, SJ100A, SJ102A, SJ103A, SJ224A, SJ225A, SJ228A, SJ229A, SJ231A, SJ907A, SJ917A]     
              [Element /CD026A/ComAccRefMES21     MinOccurs = 0, MaxOccurs = 1] of type [string][MaxLength = 35]     
              [Element /CD026A/MesSeqNumMES22     MinOccurs = 0, MaxOccurs = 1] of type [nonNegativeInteger][TotalDigits = 2]     
              [Element /CD026A/FirAndLasTraMES23     MinOccurs = 0, MaxOccurs = 1] of type [string][Values = F, L]     
         [End of sequence]
         [Element /CD026A/TRAPRIPC1     MinOccurs = 1, MaxOccurs = 1] of type [anyType]
         [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
              [Element /CD026A/TRAPRIPC1/TINPC159     MinOccurs = 1, MaxOccurs = 1] of type [string][MaxLength = 17]     
         [End of sequence]
         [Element /CD026A/CUSTOFFGUARNT     MinOccurs = 1, MaxOccurs = 1] of type [anyType]
         [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
              [Element /CD026A/CUSTOFFGUARNT/RefNumRNT1     MinOccurs = 1, MaxOccurs = 1] of type [string][Length = 8]     
         [End of sequence]
         [Element /CD026A/GUAREF2     MinOccurs = 1, MaxOccurs = 1] of type [anyType]
         [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
              [Element /CD026A/GUAREF2/GuaRefNumGRNREF21     MinOccurs = 1, MaxOccurs = 1] of type [string][MaxLength = 24]     
              [Element /CD026A/GUAREF2/ACCDOC728     MinOccurs = 0, MaxOccurs = 99] of type [anyType]
              [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
                   [Element /CD026A/GUAREF2/ACCDOC728/AccCodCOD729     MinOccurs = 1, MaxOccurs = 1] of type [string][Length = 4]     
              [End of sequence]
              [Element /CD026A/GUAREF2/ACCDOCPC4     MinOccurs = 1, MaxOccurs = 1] of type [anyType]
              [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
                   [Element /CD026A/GUAREF2/ACCDOCPC4/AccCodPC41     MinOccurs = 1, MaxOccurs = 1] of type [string][Length = 4]     
              [End of sequence]
              [Element /CD026A/GUAREF2/ACCCODPC3     MinOccurs = 1, MaxOccurs = 1] of type [anyType]
              [Start of sequence  MinOccurs = 1, MaxOccurs = 1]
                   [Element /CD026A/GUAREF2/ACCCODPC3/AccCodPC31     MinOccurs = 1, MaxOccurs = 1] of type [string][Length = 4]     
              [End of sequence]
         [End of sequence]
    [End of sequence]I still thing this is a bit of an overkill, but I will use it as a last resort in order to substitute the built-in parser so I can collect all the errors of an XML source in one go.
    Is there a way to obtain the same information from the XDB registry where my schemas will reside ? If yes, I will gladly substitute this Java class with whatever your suggestion is :)
    If not, I intend to store the extracted information in suitably constructed database tables and use a PL/SQL procedure to do the validation by traversing the table information accordingly (XPath by XPath) collecting the errors as I traverse the XML. Hopefully, due to the XPaths being very targeted towards the information that will be checked, I will avoid the DOM memory tree overhead.
    Finally, if I follow the path I described, is there a way to put some sort of trigger for the cases of copyEvolve(), inPlaceEvolve() and drop-and-reinsert so that my process will be called again for the new data ?
    Apologies for the lengthy code and result set.
    Best Regards
    Philip
    PS: I did not include the XSD file itself because it includes another four XSDs. If needed I will do it in a reply post though ...

    Good morning Marco,
    I am back at the office today, so I am trying to catch up with everything.
    If I remember though, RESOURCE_VIEW and PATH_VIEW are related to the "exploration" of the XDB registry (but I may very well be wrong !).
    What I want is to retrieve schema information (if XDB actually shreds the XML schema on registration) like elements paths, simple and complex type contents, sequence information, particle occurence information, groups and group declarations etc.
    I think it makes sense that Oracle stores these somewhere, since it uses the information on OR storage to generate types and tables anyway ;) That is of course if the whole OR shredding is not done totally on-the-fly...
    I managed to get clearance to release partial information about some of the schemas and their related documentation, so I will be passing them to you and Mark through private emails (of course) in order to give you a clearer understanding of the whole project.
    Just give me a day to write a few pages that explain how the whole operation is performed.
    Best Regards
    Philip

  • Extracting doc number information from dox saved in DMS

    Hello,
    I'm wanting to have a macro written that will put a document id into the
    footer of saved documents when the appropriate button is pushed.
    I know I can use the standard Word "Insert | Autotext | Header/Footer |
    Filename or Filename and path but when I do that, I get something like
    this:
    ::ODMAGRPWISEDOMAIN_AUS_DOM.POSTOFFICE_AUS_PO.Offi ce Administration:9055.1
    whereas the powers-that-be want something like this:
    OA:9055.1
    and nothing else. (The "OA" bit is the short version of Office
    Administration)
    I have a developer who thinks he may be able to pull this together, but he
    has posed this question:
    Is there a way to retrieve the profile information from Groupwise for a
    document that is currently open on screen?
    Using GW7, SP2 on NetWare 6.5, SP6.
    TIA,
    Catherine

    I think if you insert the filename with the option to include the path name,
    you will get the ODMA string with the doc number at the end (assuming the
    document has been saved and already has been assigned a doc number). Can
    you parse that somehow? I did this a long time ago in WP but not Word.
    Seems to me you should be able to record a macro to do that.
    "Catherine" <[email protected]> wrote in message
    news:D11Ri.13735$[email protected]. .
    > No, we can't get anything at the moment (unless we type it in the footer
    > of the document manually...using a keyboard.....ooh, manual labour!). We
    > can see what we want to get on the profile screen of a document's
    > properties when the document is open - but we don't know how to go about
    > getting that information so it can be plonked into the footer of a
    > document in Word. So the question is: Can you retrieve the profile
    > information from Groupwise for a document that is currently open on
    > screen?
    >
    > Confused? Yeah, me too!
    >
    > It's beginning to sound a bit too hard....
    >
    > Cheers,
    > Cat
    >
    >
    >
    > Dave Parkes wrote:
    >> I'm missing something here, you want
    >>
    >> OA:2870.1
    >>
    >> and you can get
    >>
    >> 2870-1.doc
    >>
    >> so, after juggling the current filename, you'd get what you want,
    >> wouldn't you ?
    >>
    >> Cheers Dave
    >>

Maybe you are looking for