Process instance is not an instance of an atomic process

hi all,
getting this error in the log. I can't seem to find anything that has this key. I am assuming it is some tables orc key.
Process instance with key '1392425' is not an instance of an atomic process.
Here is the whole line
20101206 03:00:34,261 ERROR [ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)' XELLERATE.APIS - Class/Method: tcFormInstanceOperationsBean/getProcessFormVersion encounter some problems: Process instance with key '1392425' is not an instance of an atomic process.
Thanx
Fred

We get loads of these, let me know if you find a solution.

Similar Messages

  • IPhone GPS not working in foreign countries...why?

    Hello,
    I have encountered an issue with both my iPhone 3GS and my wife's 3G (mentioning that so I'm pretty sure it's no a specific unit's issue).
    Whenevr I travel abroad, whether it's Europe or, say, Central America, the GPS function does not work. This is the case whether I have the plane in Airplane Mode or not. I can make calls etc. through the foreign carrier when I'm connected to the cell network. Data roaming is OFF, but I didn't think that was necessary for GPS. Basically, what happens is I open google maps, and try to locate myself, and it thinks about it for a while, and then tells me it cannot determine my location. Oh yeah, also tried when on Wi-Fi and still no GPS. I don't want to enable data roaming but, again, I didn't think that was necessary for the GPS function. What am I missing?
    Thanks
    GC

    Where to begin: Quoted from a GPS Manufacture:
    Factors that can degrade the GPS signal and thus affect accuracy include the following:
    * Ionosphere and troposphere delays — The satellite signal slows as it passes through the atmosphere. The GPS system uses a built-in model that calculates an average amount of delay to partially correct for this type of error.
    * Signal multipath — This occurs when the GPS signal is reflected off objects such as tall buildings or large rock surfaces before it reaches the receiver. This increases the travel time of the signal, thereby causing errors.
    * Receiver clock errors — A receiver's built-in clock is not as accurate as the atomic clocks onboard the GPS satellites. Therefore, it may have very slight timing errors.
    * Orbital errors — Also known as ephemeris errors, these are inaccuracies of the satellite's reported location.
    * Number of satellites visible — The more satellites a GPS receiver can "see," the better the accuracy. Buildings, terrain, electronic interference, or sometimes even dense foliage can block signal reception, causing position errors or possibly no position reading at all. GPS units typically will not work indoors, underwater or underground.
    * Satellite geometry/shading — This refers to the relative position of the satellites at any given time. Ideal satellite geometry exists when the satellites are located at wide angles relative to each other. Poor geometry results when the satellites are located in a line or in a tight grouping.
    * Intentional degradation of the satellite signal — Selective Availability (SA) is an intentional degradation of the signal once imposed by the U.S. Department of Defense. SA was intended to prevent military adversaries from using the highly accurate GPS signals. The government turned off SA in May 2000, which significantly improved the accuracy of civilian GPS receivers.

  • Questions on Locking-- URGENT

    Here are my questions on Locking.:
    1)
    How do I use v$lock to figure out lock details ? Details like
    whos has locked,on which table,who else is waiting, and what type
    of locking (shared or exlusive ?), since when it is locked.
    2)
    Why and when exclusive/shared locks are used ? Could you give me
    example please ?
    3)
    Could you tell me significance of v$mystat and v$locked_object ?
    4)
    Do we have page level locking in Oracle ?
    Thanks in advance,
    DN

    Details about locks : All locks acquired by statements within a transaction are held for the duration of the transaction.
    Oracle releases all locks acquired by the statements within a transaction when an explict or implied commit or roll back is executed. Oracle also releases locks acquired after a savepoint when rolling back to the savepoint.
    Note: Only transactions not waiting for the previously locked resources can acquire locks on now available resources. Waiting transactions continue to wait until after the original transaction commits or completely rolls back.
    1. How do I use v$lock to figure out lock details? Details like
    whos has locked,on which table,who else is waiting, and what type
    of locking (shared or exlusive ?), since when it is locked.
    Better way is to use Oracle OEM. The TYPE column in v$lock shows the type of wait events and we also have the LMODE column (lock mode) and REQUEST columns.
    Here is a comprehensive v$lock query by Deepak Baranwal, listing the lock types:
    set echo off
    col sid form 9999
    col id1 form 9999999999
    col id2 form 999999999
    col lmode head "Lock Held" form a14
    col request1 head "Lock Request" form a16
    col type head "Lock Type" form a15
    col ctime head "Time|Held" form 999999
    col block head "No Of |Sessions|Waiting|For This|Lock" form 99999
    select sid,
    DECODE(TYPE,
    'BL','Buffer hash table',
    'CF','Control File Transaction',
    'CI','Cross Instance Call',
    'CS','Control File Schema',
    'CU','Bind Enqueue',
    'DF','Data File',
    'DL','Direct-loader index-creation',
    'DM','Mount/startup db primary/secondary instance',
    'DR','Distributed Recovery Process',
    'DX','Distributed Transaction Entry',
    'FI','SGA Open-File Information',
    'FS','File Set',
    'IN','Instance Number',
    'IR','Instance Recovery Serialization',
    'IS','Instance State',
    'IV','Library Cache InValidation',
    'JQ','Job Queue',
    'KK','Redo Log "Kick"',
    'LS','Log Start/Log Switch',
    'MB','Master Buffer hash table',
    'MM','Mount Definition',
    'MR','Media Recovery',
    'PF','Password File',
    'PI','Parallel Slaves',
    'PR','Process Startup',
    'PS','Parallel Slaves Synchronization',
    'RE','USE_ROW_ENQUEUE Enforcement',
    'RT','Redo Thread',
    'RW','Row Wait',
    'SC','System Commit Number',
    'SH','System Commit Number HWM',
    'SM','SMON',
    'SQ','Sequence Number',
    'SR','Synchronized Replication',
    'SS','Sort Segment',
    'ST','Space Transaction',
    'SV','Sequence Number Value',
    'TA','Transaction Recovery',
    'TD','DDL enqueue',
    'TE','Extend-segment enqueue',
    'TM','DML enqueue',
    'TS','Temporary Segment',
    'TT','Temporary Table',
    'TX','Transaction',
    'UL','User-defined Lock',
    'UN','User Name',
    'US','Undo Segment Serialization',
    'WL','Being-written redo log instance',
    'WS','Write-atomic-log-switch global enqueue',
    'XA','Instance Attribute',
    'XI','Instance Registration',
    decode(substr(TYPE,1,1),
    'L','Library Cache ('||substr(TYPE,2,1)||')',
    'N','Library Cache Pin ('||substr(TYPE,2,1)||')',
    'Q','Row Cache ('||substr(TYPE,2,1)||')',
    '????')) TYPE,
    id1,id2,
    decode(lmode,
    0,'None(0)',
    1,'Null(1)',
    2,'Row Share(2)',
    3,'Row Exclu(3)',
    4,'Share(4)',
    5,'Share Row Ex(5)',
    6,'Exclusive(6)') lmode,
    decode(request,
    0,'None(0)',
    1,'Null(1)',
    2,'Row Share(2)',
    3,'Row Exclu(3)',
    4,'Share(4)',
    5,'Share Row Ex(5)',
    6,'Exclusive(6)') request1,
    ctime, block
    from
    v$lock
    where sid>5
    and type not in ('MR','RT')
    order by decode(request,0,0,2),block,5
    2 .Why and when exclusive/shared locks are used ? Could you give me
    example please ?
    Exclusive Lock Mode : Prevents the associates resource from being shared. This lock mode is obtained to modify data. The first transaction to lock a resource exclusively is the only transaction that can alter the resource until the exclusive lock is released.
    Share Lock Mode : Allows the associated resource to be shared, depending on the operations involved. Multiple users reading data can share the data, holding share locks to prevent concurrent access by a writer (who needs an exclusive lock). Several transactions can acquire share locks on the same resource.
    Oracle Lock Types
    DML locks (data locks)
    DDL locks (dictionary locks)
    Oracle Internal Locks/Latches
    Oracle Distributed Locks
    Oracle Parallell Cache Management Locks
    3. Could you tell me significance of v$mystat and v$locked_object ?
    v$locked_object show the information about Who is locking and what object they locking. This view is similar to v$mystat except that it shows cumulated statistics for all sessions.
    4. Do we have page level locking in Oracle ? No
    Sachin

  • Query To Kill Locked Object's Session

    Hi ,
    Im trying to write script to getting sid & Serial# for frequently locked objects in my database.
    i have tried with 3 ways as following, Pl Guide me for choosing better.
    Query 1:
    SELECT SID,SERIAL# FROM V$SESSION WHERE SID IN (SELECT SID FROM V$LOCKED_OBJECT WHERE OBJECT_ID IN ('34943','34957','34966')));
    Query 2:
    select
         sess.sid,
         sess.serial#
    from
         v$locked_object lo,
         dba_objects ao,
         v$session sess
    where
    ao.object_id = lo.object_id
         and
    lo.session_id = sess.sid
         AND
    AO.OBJECT_ID IN('34943','34957','34966');
    Query 3:
    select
    sid,
    serial#
    from
    select
    sid,
    serial#
    from
    v$session
    ) y,
    select
    b.session_id
    from
    select
    object_id,
    session_id,
    locked_mode
    from
    v$locked_object
    ) b,
    select
    object_id,
    object_name,
    owner
    from
    dba_objects
    where
    object_name in ('PMA_DEFECT_DETAILS',
    'PMA_DEFECT_HEADER',
    'PMA_DEFECT_TRANS')
    ) c
    Where
    b.object_id = c.object_id
    ) x
    Where
    x.session_id = y.sid ;
    Edited by: Abk on Jan 2, 2009 6:31 PM
    Edited by: Abk on Jan 2, 2009 6:34 PM

    Hi..
    To know the lock you can use the query below, you will know the sid and find the serial# from v$session.
    >
    col sid for 9999
    col id1 for 99999999
    col id2 for 99999999
    col lmode head "Lock Held" form a14
    col request1 head "Lock Request" form a16
    col type head "Lock Type" form a40
    col ctime head "Time Held" form 99999
    select sid,
    DECODE(TYPE,
    'BL','Buffer hash table',
    'CF','Control File Transaction',
    'CI','Cross Instance Call',
    'CS','Control File Schema',
    'CU','Bind Enqueue',
    'DF','Data File',
    'DL','Direct-loader index-creation',
    'DM','Mount/startup db primary/secondary instance',
    'DR','Distributed Recovery Process',
    'DX','Distributed Transaction Entry',
    'FI','SGA Open-File Information',
    'FS','File Set',
    'IN','Instance Number',
    'IR','Instance Recovery Serialization',
    'IS','Instance State',
    'IV','Library Cache InValidation',
    'JQ','Job Queue',
    'KK','Redo Log "Kick"',
    'LS','Log Start/Log Switch',
    'MB','Master Buffer hash table',
    'MM','Mount Definition',
    'MR','Media Recovery',
    'PF','Password File',
    'PI','Parallel Slaves',
    'PR','Process Startup',
    'PS','Parallel Slaves Synchronization',
    'RE','USE_ROW_ENQUEUE Enforcement',
    'RT','Redo Thread',
    'RW','Row Wait',
    'SC','System Commit Number',
    'SH','System Commit Number HWM',
    'SM','SMON',
    'SQ','Sequence Number',
    'SR','Synchronized Replication',
    'SS','Sort Segment',
    'ST','Space Transaction',
    'SV','Sequence Number Value',
    'TA','Transaction Recovery',
    'TD','DDL enqueue',
    'TE','Extend-segment enqueue',
    'TM','DML enqueue',
    'TS','Temporary Segment',
    'TT','Temporary Table',
    'TX','Transaction',
    'UL','User-defined Lock',
    'UN','User Name',
    'US','Undo Segment Serialization',
    'WL','Being-written redo log instance',
    'WS','Write-atomic-log-switch global enqueue',
    'XA','Instance Attribute',
    'XI','Instance Registration',
    decode(substr(TYPE,1,1),
    'L','Library Cache ('||substr(TYPE,2,1)||')',
    'N','Library Cache Pin ('||substr(TYPE,2,1)||')',
    'Q','Row Cache ('||substr(TYPE,2,1)||')',
    '????')) TYPE,
    id1,id2,
    decode(lmode,
    0,'None(0)',
    1,'Null(1)',
    2,'Row Share(2)',
    3,'Row Exclu(3)',
    4,'Share(4)',
    5,'Share Row Ex(5)',
    6,'Exclusive(6)') lmode,
    decode(request,
    0,'None(0)',
    1,'Null(1)',
    2,'Row Share(2)',
    3,'Row Exclu(3)',
    4,'Share(4)',
    5,'Share Row Ex(5)',
    6,'Exclusive(6)') request1,
    ctime, decode(BLOCK,
              0, 'Not Blocking',
              1, 'Blocking',
              2, 'Global',block) status
    from
    v$lock
    where sid>5
    and type not in ('MR','RT')
    order by decode(request,0,0,2),block,5
    ==================================================
    To know the session:--
    col username for a20
    col program for a20
    col osuser for a15
    SELECT NVL(s.username, '(oracle)') AS username,
    s.osuser,
    s.sid,
    s.serial#,
    p.spid,
    s.status,
    s.module,
    s.machine,
    s.program,
    TO_CHAR(s.logon_Time,'DD-MON-YYYY HH24:MI:SS') AS logon_time
    FROM v$session s,
    v$process p
    WHERE s.paddr = p.addr
    ORDER BY s.username, s.osuser;
    >
    HTH
    Anand

  • HTTP Response Header code and message

    Hi all, i have a web service that return a JSON file, the scenario is syncronous like this: HT(CALL,SYNC) - Handover - dynamic
    Hi have the need to change the defaul behavior of the response headers, for example i whant to return:
    404 Not Found - ID not found.
    in my last atom i have this payload:
    xsl:attribute name="pltype">json</xsl:attribute>
    <io xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:com.sap.b1i.bizprocessor:bizatoms" pltype="json" xsi:schemaLocation="urn:com.sap.b1i.bizprocessor:bizatoms json_pltype.xsd">
    Where i can force the response to have a custom response code and message ?
    Thank you all

    I'm not sure if I got you right. Do you want to have another signature for printinfo()?
    The solution then is:
    public static void printinfo(String urlString) throws IOException, MalformedURLException {
      URL url = new URL(urlString);
    }

  • IFC Schema import to XDB

    Hi,
    IFC - Industry Foundation Classes released a latest schema called IFC2X3. the main schema file IFC2X3.xsd imports ex.xsd which inlcudes configuration.xsd.
    when i try to register IFC2X3.xsd in oracle it raises an error that ex.xsd is not an XDB Schema.
    These schema files contain elements, attributes and definitions. the schemas are valid using xmlspy. please advise with the best way forward for storing these into XDB and generating relational tables. and also loading data into database using files based on these schemas.
    Many thanks
    Edited by: 909882 on 24-Jan-2012 07:23

    Thanks for input
    I registered it via Grid Control using the force option but ii seems that dumped the xsd in the database and did not create any tables. I have selected storage as object relational.
    BTW - here are the actual xsd. Oracle registered configuration.xsd successfully but not ex.xsd and IFC2X3.xsd
    These files can be downloaded from http://www.iai-tech.org/ifcXML/IFC2x3/FINAL
    Your input will be much regarded.
    Configuration.xsd:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema
    targetNamespace="urn:iso.org:standard:10303:part(28):version(2):xmlschema:common"
    xmlns:ex="urn:iso.org:standard:10303:part(28):version(2):xmlschema:common"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified">
         <xs:element name="configuration" nillable="true">
              <xs:complexType>
                   <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="ex:include"/>
                        <xs:element ref="ex:option"/>
                        <xs:element ref="ex:type"/>
                        <xs:element ref="ex:entity"/>
                   </xs:choice>
                   <xs:attribute name="id" type="xs:ID" use="required"/>
                   <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/>
                   <xs:attribute name="schema" type="xs:IDREF" use="optional"/>
                   <xs:attribute name="configurationLocation" type="ex:Seq-anyURI" use="optional"/>
              </xs:complexType>
         </xs:element>
         <xs:element name="include">
              <xs:complexType>
                   <xs:attribute name="configuration" type="xs:IDREF" use="required"/>
              </xs:complexType>
         </xs:element>
         <xs:element name="option">
              <xs:complexType>
                   <xs:attribute name="inheritance" type="xs:boolean" default="false"/>
                   <xs:attribute name="exp-type" type="ex:exp-type" default="unspecified"/>
                   <xs:attribute name="exp-attribute" type="ex:exp-attribute" default="double-tag"/>
                   <xs:attribute name="flatten" type="ex:boolean_or_depth" default="false"/>
                   <xs:attribute name="sparse" type="xs:boolean" default="false"/>
                   <xs:attribute name="tagless" type="ex:boolean_or_unspecified" default="unspecified"/>
                   <xs:attribute name="naming-convention" type="ex:naming-convention" default="initial-upper"/>
              </xs:complexType>
         </xs:element>
         <xs:element name="type">
              <xs:complexType>
                   <xs:choice minOccurs="0">
                        <xs:element ref="ex:aggregate"/>
                   </xs:choice>
                   <xs:attribute name="select" type="xs:NMTOKEN" use="required"/>
                   <xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="map" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="exp-type" type="ex:exp-type" use="optional"/>
                   <xs:attribute name="flatten" type="ex:boolean_or_depth" use="optional"/>
                   <xs:attribute name="sparse" type="xs:boolean" use="optional"/>
                   <xs:attribute name="tagless" type="ex:boolean_or_unspecified" use="optional"/>
                   <xs:attribute name="notation" type="xs:normalizedString" use="optional"/>
              </xs:complexType>
         </xs:element>
         <xs:element name="entity">
              <xs:complexType>
                   <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="ex:attribute"/>
                        <xs:element ref="ex:inverse"/>
                   </xs:choice>
                   <xs:attribute use="required" name="select">
                        <xs:simpleType>
                             <xs:restriction>
                                  <xs:simpleType>
                                       <xs:list itemType="xs:Name"/>
                                  </xs:simpleType>
                                  <xs:minLength value="1"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:attribute>
                   <xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="tag-source" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="tag-values" type="xs:NMTOKENS" use="optional"/>
                   <xs:attribute name="exp-type" type="ex:exp-type" use="optional"/>
                   <xs:attribute name="content" type="ex:content" use="optional"/>
                   <xs:attribute name="exp-attribute" type="ex:exp-attribute" use="optional"/>
                   <xs:attribute name="flatten" type="ex:boolean_or_depth" use="optional"/>
                   <xs:attribute name="sparse" type="xs:boolean" use="optional"/>
                   <xs:attribute name="tagless" type="ex:boolean_or_unspecified" use="optional"/>
              </xs:complexType>
         </xs:element>
         <xs:element name="attribute">
              <xs:complexType>
                   <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="ex:aggregate"/>
                   </xs:choice>
                   <xs:attribute name="select" type="xs:NMTOKEN" use="required"/>
                   <xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="exp-attribute" type="ex:exp-attribute" use="optional"/>
                   <xs:attribute name="content" type="ex:content" use="optional"/>
                   <xs:attribute name="keep" type="xs:boolean" default="false"/>
                   <xs:attribute name="flatten" type="ex:boolean_or_depth" use="optional"/>
                   <xs:attribute name="sparse" type="xs:boolean" use="optional"/>
                   <xs:attribute name="tagless" type="ex:boolean_or_unspecified" use="optional"/>
                   <xs:attribute name="notation" type="xs:normalizedString" use="optional"/>
              </xs:complexType>
         </xs:element>
         <xs:element name="inverse">
              <xs:complexType>
                   <xs:attribute name="select" type="xs:NMTOKEN" use="required"/>
                   <xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="exp-attribute" type="ex:exp-attribute" use="optional"/>
                   <xs:attribute name="content" type="ex:content" use="optional"/>
                   <xs:attribute name="flatten" type="ex:boolean_or_depth" use="optional"/>
                   <xs:attribute name="sparse" type="xs:boolean" use="optional"/>
                   <xs:attribute name="tagless" type="ex:boolean_or_unspecified" use="optional"/>
                   <xs:attribute name="use-id" type="xs:boolean" use="optional"/>
                   <xs:attribute name="invert" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="keep" type="xs:boolean" default="false"/>
                   <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="0"/>
                   <xs:attribute name="maxOccurs" type="ex:nonNegativeInteger_or_unbounded" use="optional" default="unbounded"/>
              </xs:complexType>
         </xs:element>
         <xs:element name="aggregate">
              <xs:complexType>
                   <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element ref="ex:aggregate"/>
                   </xs:choice>
                   <xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
                   <xs:attribute name="exp-attribute" type="ex:exp-attribute" use="optional"/>
                   <xs:attribute name="flatten" type="ex:boolean_or_depth" use="optional"/>
                   <xs:attribute name="sparse" type="xs:boolean" use="optional"/>
                   <xs:attribute name="tagless" type="ex:boolean_or_unspecified" use="optional"/>
                   <xs:attribute name="use-id" type="xs:boolean" use="optional"/>
              </xs:complexType>
         </xs:element>
         <xs:simpleType name="exp-type">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="root"/>
                   <xs:enumeration value="value"/>
                   <xs:enumeration value="unspecified"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="exp-attribute">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="double-tag"/>
                   <xs:enumeration value="attribute-tag"/>
                   <xs:enumeration value="entity-tag"/>
                   <xs:enumeration value="no-tag"/>
                   <xs:enumeration value="attribute-content"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="content">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="value"/>
                   <xs:enumeration value="ref"/>
                   <xs:enumeration value="unspecified"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="naming-convention">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="initial-upper"/>
                   <xs:enumeration value="camel-case"/>
                   <xs:enumeration value="preserve-case"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:simpleType name="boolean_or_unspecified">
              <xs:union memberTypes="xs:boolean">
                   <xs:simpleType>
                        <xs:restriction base="xs:string">
                             <xs:enumeration value="unspecified"/>
                        </xs:restriction>
                   </xs:simpleType>
              </xs:union>
         </xs:simpleType>
         <xs:simpleType name="boolean_or_depth">
              <xs:union memberTypes="xs:boolean xs:nonNegativeInteger"/>
         </xs:simpleType>
         <xs:simpleType name="nonNegativeInteger_or_unbounded">
              <xs:union memberTypes="xs:nonNegativeInteger">
                   <xs:simpleType>
                        <xs:restriction base="xs:string">
                             <xs:enumeration value="unbounded"/>
                        </xs:restriction>
                   </xs:simpleType>
              </xs:union>
         </xs:simpleType>
         <!-- xs:simpleType name="Seq-anyURI">
              <xs:list itemType="xs:anyURI"/>
         </xs:simpleType -->
    </xs:schema>
    ex.xsd:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:ex="urn:iso.org:standard:10303:part(28):version(2):xmlschema:common" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:iso.org:standard:10303:part(28):version(2):xmlschema:common" elementFormDefault="qualified" attributeFormDefault="unqualified">
         <!-- INCLUDE the configuration schema holding the P28 configuration schema -->
         <xs:include schemaLocation="configuration.xsd"/>
         <!-- DEFINE the P28 root element -->
         <xs:element name="iso_10303_28">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element ref="ex:iso_10303_28_header" minOccurs="0"/>
                        <xs:element ref="ex:uos"/>
                        <!-- <xs:choice minOccurs="0" maxOccurs="unbounded">
                                  <xs:element ref="ex:express"/>
                                  <xs:element ref="ex:schema_population"/>
                                  <xs:element ref="ex:configuration"/>
                        </xs:choice> -->
                   </xs:sequence>
                   <xs:attribute name="version" type="xs:string" use="required"/>
              </xs:complexType>
         </xs:element>
         <!-- DEFINE the P28 schema population and express elements -->
         <!-- schema population is not used for ifcXML -->
         <xs:element name="schema_population">
              <xs:complexType>
                   <xs:attribute name="governing_schema" type="xs:IDREF" use="required"/>
                   <xs:attribute name="governed_sections" type="xs:IDREFS" use="optional"/>
                   <xs:attribute name="determination_method" type="xs:normalizedString" default="section_boundary"/>
              </xs:complexType>
         </xs:element>
         <!-- express element is not used for ifcXML -->
         <xs:element name="express" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:string">
                             <xs:attribute name="schemaLocation" type="ex:Seq-anyURI" use="optional"/>
                             <xs:attribute name="id" type="xs:ID" use="required"/>
                             <xs:attribute name="schema_identifier" type="xs:normalizedString" use="optional"/>
                             <xs:attribute name="schema_name" type="xs:normalizedString" use="optional"/>
                             <xs:attribute name="schema_version" type="xs:normalizedString" use="optional"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <!-- DEFINE the P28 header element -->
         <xs:element name="iso_10303_28_header">
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="name" type="xs:anyURI"/>
                        <xs:element name="time_stamp" type="xs:dateTime"/>
                        <xs:element name="author" type="xs:string"/>
                        <xs:element name="organization" type="xs:string"/>
                        <xs:element name="preprocessor_version" type="xs:string"/>
                        <xs:element name="originating_system" type="xs:string"/>
                        <xs:element name="authorization" type="xs:string"/>
                        <xs:element name="documentation" type="xs:string"/>
                   </xs:sequence>
              </xs:complexType>
         </xs:element>
         <!-- DEFINE the P28 base element UOS -->
         <xs:element name="uos" type="ex:uos" abstract="true"/>
         <xs:complexType name="uos">
              <xs:attribute name="id" type="xs:ID" use="required"/>
              <xs:attribute name="express" type="ex:Seq-anyURI" use="optional"/>
              <xs:attribute name="configuration" type="ex:Seq-anyURI" use="optional"/>
              <xs:attribute name="schemaLocation" type="ex:Seq-anyURI" use="optional"/>
              <xs:attribute name="edo" type="xs:anyURI" use="optional"/>
              <xs:attribute name="description" type="xs:string" use="optional"/>
         </xs:complexType>
         <!-- EX ENTITY DEFINTIONS and DECLARATIONS -->
         <xs:element name="Entity" type="ex:Entity" abstract="true"/>
         <xs:complexType name="Entity" abstract="true">
              <xs:attribute name="href" type="xs:anyURI" use="optional"/>
              <xs:attribute name="ref" type="xs:IDREF" use="optional"/>
              <xs:attribute name="proxy" type="xs:IDREF" use="optional"/>
              <xs:attribute name="edo" type="xs:anyURI" use="optional"/>
              <xs:attributeGroup ref="ex:instanceAttributes"/>
         </xs:complexType>
         <!-- GLOBAL ATTRIBUTE DECLARATIONS -->
         <xs:attribute name="arraySize">
              <xs:simpleType>
                   <xs:restriction>
                        <xs:simpleType>
                             <xs:list itemType="xs:integer"/>
                        </xs:simpleType>
                        <xs:minLength value="1"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="itemType" type="xs:QName"/>
         <xs:attribute name="cType">
              <xs:simpleType>
                   <xs:list itemType="ex:aggregateType"/>
              </xs:simpleType>
         </xs:attribute>
         <xs:attribute name="attributeType">
              <xs:simpleType>
                   <xs:restriction base="xs:normalizedString">
                        <xs:enumeration value="explicit"/>
                        <xs:enumeration value="inverse"/>
                        <xs:enumeration value="derived"/>
                        <xs:enumeration value="renamed"/>
                   </xs:restriction>
              </xs:simpleType>
         </xs:attribute>
         <xs:simpleType name="Seq-anyURI">
              <xs:list itemType="xs:anyURI"/>
         </xs:simpleType>
         <!-- GLOBAL ATTRIBUTE GROUP DECLARATIONS -->
         <xs:attributeGroup name="instanceAttributes">
              <xs:attribute name="id" type="xs:ID" use="optional"/>
              <xs:attribute name="path" type="xs:NMTOKENS" use="optional"/>
              <xs:attribute name="pos" use="optional">
                   <xs:simpleType>
                        <xs:restriction>
                             <xs:simpleType>
                                  <xs:list itemType="xs:integer"/>
                             </xs:simpleType>
                             <xs:minLength value="1"/>
                        </xs:restriction>
                   </xs:simpleType>
              </xs:attribute>
         </xs:attributeGroup>
         <!-- GLOBAL SIMPLE TYPE DECLARATIONS -->
         <xs:simpleType name="aggregateType">
              <xs:restriction base="xs:normalizedString">
                   <xs:enumeration value="array"/>
                   <xs:enumeration value="list"/>
                   <xs:enumeration value="set"/>
                   <xs:enumeration value="bag"/>
                   <xs:enumeration value="array-unique"/>
                   <xs:enumeration value="array-optional"/>
                   <xs:enumeration value="array-optional-unique"/>
                   <xs:enumeration value="list-unique"/>
              </xs:restriction>
         </xs:simpleType>
         <!-- WRAPPERS (OR INSTANCE ELEMENTS) FOR ATOMIC SIMPLE TYPES -->
         <xs:element name="base64Binary-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="ex:base64Binary">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:complexType name="base64Binary">
              <xs:simpleContent>
                   <xs:extension base="xs:base64Binary">
                        <xs:attribute name="extraBits" type="xs:integer" use="optional"/>
                   </xs:extension>
              </xs:simpleContent>
         </xs:complexType>
         <xs:element name="hexBinary-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="ex:hexBinary">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:complexType name="hexBinary">
              <xs:simpleContent>
                   <xs:extension base="xs:hexBinary">
                        <xs:attribute name="extraBits" type="xs:integer" use="optional"/>
                   </xs:extension>
              </xs:simpleContent>
         </xs:complexType>
         <xs:element name="logical-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="ex:logical">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:simpleType name="logical">
              <xs:restriction base="xs:string">
                   <xs:enumeration value="false"/>
                   <xs:enumeration value="true"/>
                   <xs:enumeration value="unknown"/>
              </xs:restriction>
         </xs:simpleType>
         <xs:element name="boolean-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:boolean">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:element name="decimal-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:decimal">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:element name="double-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:double">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:element name="long-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:long">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:element name="integer-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:integer">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
         <xs:element name="string-wrapper" nillable="true">
              <xs:complexType>
                   <xs:simpleContent>
                        <xs:extension base="xs:normalizedString">
                             <xs:attributeGroup ref="ex:instanceAttributes"/>
                        </xs:extension>
                   </xs:simpleContent>
              </xs:complexType>
         </xs:element>
    </xs:schema>
    IFC2X3.xsd
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- created with EXPTOOL V20070502 (perl 5 program) written by Thomas Liebich, AEC3, [email protected] -->
    <!-- validated with XMLspy2007 sp2 (http://www.xmlspy.com) by Thomas Liebich, AEC3, [email protected] -->
    <!-- configuration options used to create the following XML schema definitions following ISO 10303-28ed2 CD -->
    <!-- global options within the <option> scoping element -->
    <!-- + <inheritance> = "true" -->
    <!-- + <exp-type> = "unspecified" -->
    <!-- + <exp-attribute> = "double-tag" -->
    <!-- + <flatten> = "false" -->
    <!-- + <sparse> = "true" -->
    <!-- + <tagless> = "false" -->
    <!-- + <naming-convention> = "preserve-case" -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:ex="urn:iso.org:standard:10303:part(28):version(2):xmlschema:common" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ifc="http://www.iai-tech.org/ifcXML/IFC2x3/FINAL" attributeFormDefault="unqualified" targetNamespace="http://www.iai-tech.org/ifcXML/IFC2x3/FINAL">
    <!-- root element declaration (for SCHEMA definitions) -->
         <xs:import namespace="urn:iso.org:standard:10303:part(28):version(2):xmlschema:common" schemaLocation="http://www.iai-tech.org/ifcXML/IFC2x3/FINAL/ex.xsd">
         </xs:import>
         <xs:element substitutionGroup="ex:uos" name="uos" type="ifc:uos">
         </xs:element>
         <xs:complexType name="uos">
              <xs:complexContent>
                   <xs:extension base="ex:uos">
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                             <xs:element ref="ex:Entity">
                             </xs:element>
                        </xs:choice>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
    <!-- element and complex type declarations (for ENTITY definitions) -->
         <xs:element substitutionGroup="ifc:IfcCompositeCurve" name="Ifc2DCompositeCurve" nillable="true" type="ifc:Ifc2DCompositeCurve">
         </xs:element>
         <xs:complexType name="Ifc2DCompositeCurve">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcCompositeCurve">
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcControl" name="IfcActionRequest" nillable="true" type="ifc:IfcActionRequest">
         </xs:element>
         <xs:complexType name="IfcActionRequest">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcControl">
                        <xs:sequence>
                             <xs:element name="RequestID" type="ifc:IfcIdentifier">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcObject" name="IfcActor" nillable="true" type="ifc:IfcActor">
         </xs:element>
         <xs:complexType name="IfcActor">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcObject">
                        <xs:sequence>
                             <xs:element name="TheActor">
                                  <xs:complexType>
                                       <xs:group ref="ifc:IfcActorSelect">
                                       </xs:group>
                                  </xs:complexType>
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ex:Entity" name="IfcActorRole" nillable="true" type="ifc:IfcActorRole">
         </xs:element>
         <xs:complexType name="IfcActorRole">
              <xs:complexContent>
                   <xs:extension base="ex:Entity">
                        <xs:sequence>
                             <xs:element name="Role" type="ifc:IfcRoleEnum">
                             </xs:element>
                             <xs:element name="UserDefinedRole" minOccurs="0" type="ifc:IfcLabel" nillable="true">
                             </xs:element>
                             <xs:element name="Description" minOccurs="0" type="ifc:IfcText" nillable="true">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcDistributionControlElementType" name="IfcActuatorType" nillable="true" type="ifc:IfcActuatorType">
         </xs:element>
         <xs:complexType name="IfcActuatorType">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcDistributionControlElementType">
                        <xs:sequence>
                             <xs:element name="PredefinedType" type="ifc:IfcActuatorTypeEnum">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ex:Entity" name="IfcAddress" nillable="true" type="ifc:IfcAddress" abstract="true">
         </xs:element>
         <xs:complexType name="IfcAddress" abstract="true">
              <xs:complexContent>
                   <xs:extension base="ex:Entity">
                        <xs:sequence>
                             <xs:element name="Purpose" minOccurs="0" type="ifc:IfcAddressTypeEnum" nillable="true">
                             </xs:element>
                             <xs:element name="Description" minOccurs="0" type="ifc:IfcText" nillable="true">
                             </xs:element>
                             <xs:element name="UserDefinedPurpose" minOccurs="0" type="ifc:IfcLabel" nillable="true">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcFlowControllerType" name="IfcAirTerminalBoxType" nillable="true" type="ifc:IfcAirTerminalBoxType">
         </xs:element>
         <xs:complexType name="IfcAirTerminalBoxType">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcFlowControllerType">
                        <xs:sequence>
                             <xs:element name="PredefinedType" type="ifc:IfcAirTerminalBoxTypeEnum">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcFlowTerminalType" name="IfcAirTerminalType" nillable="true" type="ifc:IfcAirTerminalType">
         </xs:element>
         <xs:complexType name="IfcAirTerminalType">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcFlowTerminalType">
                        <xs:sequence>
                             <xs:element name="PredefinedType" type="ifc:IfcAirTerminalTypeEnum">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcEnergyConversionDeviceType" name="IfcAirToAirHeatRecoveryType" nillable="true" type="ifc:IfcAirToAirHeatRecoveryType">
         </xs:element>
         <xs:complexType name="IfcAirToAirHeatRecoveryType">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcEnergyConversionDeviceType">
                        <xs:sequence>
                             <xs:element name="PredefinedType" type="ifc:IfcAirToAirHeatRecoveryTypeEnum">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcDistributionControlElementType" name="IfcAlarmType" nillable="true" type="ifc:IfcAlarmType">
         </xs:element>
         <xs:complexType name="IfcAlarmType">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcDistributionControlElementType">
                        <xs:sequence>
                             <xs:element name="PredefinedType" type="ifc:IfcAlarmTypeEnum">
                             </xs:element>
                        </xs:sequence>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <xs:element substitutionGroup="ifc:IfcDimensionCurveDirectedCallout" name="IfcAngularDimension" nillable="true" type="ifc:IfcAngularDimension">
         </xs:element>
         <xs:complexType name="IfcAngularDimension">
              <xs:complexContent>
                   <xs:extension base="ifc:IfcDimensionCurveDirectedCallout">
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
    >>> deleted a portion of it to fit oracle's 30000 character limit
    </xs:schema>
    ---------------------------- END -------------------------------------------------------------------------------------------------------------------------------
    Edited by: 909882 on Jan 25, 2012 9:34 AM

  • Inheritance, interface, urg, sorry...

    (this question stems from http://forum.java.sun.com/thread.jspa?threadID=5271181)
    Hi,
    I've written a propositional logic grammar for a JavaCC parser that compiles fine.
    JavaCC generates a SimpleNode class to represent the input. I have methods to be added to the SimpleNode class but would prefer to leave SimpleNode as untouched as possible incase the JavaCC grammar ever needs to be modified, which would lead to the SimpleNode class being regenerated and potentially overwriting the added methods.
    So far to get around this I've created a 'SimpleNodeSuperclass' that SimpleNode extends, and put the extra methods inside SimpleNodeSuperclass instead.
    I then intend to create a subclass of SimpleNode, called Sentence. Sentence will be where I put the logic methods eval(), isContradiction(), isTautology() etc.
    So something like
    public interface Node {
         // Generated by JavaCC
         // Contains generic Node operations - adding children, traversing the tree...
    public abstract class SimpleNodeSuperclass {
         // Added by me
         // Contains a few extra bits needed in SimpleNode - setting a text label for example.
    public class SimpleNode extends SimpleNodeSuperclass implements Node {
         // Generated by JavaCC
         // Implements operations required by Node.
    public class Sentence extends SimpleNode {
         // Added by me
         // Contains logic operations
         public Boolean eval() {...}
         public Boolean isContradiction() {...}
         public Boolean isTautology() {...}
         // etc.
    }I'm having problems when I try to create a new instance of Sentence though. Previously, to create a SimpleNode, I would do the following
    PropLogicParser parser = new PropLogicParser(new StringReader("a & !b"));
    SimpleNode root = parser.query();
    root.dump();Which would output
    Root
    And
      Atom
      Not
       Atomas expected.
    The problem seems to be that of the other JavaCC generated files refer to Nodes and SimpleNodes so the normal operations don't work with the 'Sentence' class.
    I'm sure I'm just missing something obvious with my grasp of Abstract vs Interface vs Inheritance but my brain seems to have slowed to a crawl this evening :(
    Cheers

    >
    I know diddly about JavaCC, but from what I read at https://javacc.dev.java.net/ it would appear that it generates some parser code, which in turn generates a parse tree, which you can may then manipulate.
    >
    That's about it, you drop a grammar in, it generates a parse tree based around SimpleNodes. There's a bit of smartifying needed, for example when you have "a & b" then it knows a and b are atoms, but you need to add a setLabel() method to capture their names so you can tell them apart. It's that method that's gone into the SimpleNodeSuperclass.
    package parser;
    abstract class SimpleNodeSuperclass {
         protected int id;
         protected String label;
         public void setLabel(String label) {
              this.label = label;
         public String getLabel() {
              return label;
         public void setType(int type) {
              this.id = type;
         public int getType() {
              return id;
    }If I make a sentence have a parse tree then it introduces more problems from what I can see.
    package logic;
    import parser.SimpleNode;
    public class Sentence {
         final private int     ROOT          = 0;
         final private int     VOID          = 1;
         final private int     EQUIVALENT     = 2;
         final private int     IMPLIES          = 3;
         final private int     OR               = 4;
         final private int     AND               = 5;
         final private int     TRUE          = 6;
         final private int     FALSE          = 7;
         final private int     NOT               = 8;
         final private int     ATOM          = 9;
         private SimpleNode     node;
         public Boolean eval(Interpretation inter) {
              Boolean val;
              SimpleNode lhs = (SimpleNode) node.jjtGetChild(0);
              SimpleNode rhs = (SimpleNode) node.jjtGetChild(0);
              switch (node.getType()) {
                   case ROOT:
                        val = lhs.eval(inter);
                        break;
                   case VOID:
                        val = null;
                        break;
                   case EQUIVALENT:
                        val = (lhs.eval(inter) == rhs.eval(inter));
                        break;
                   case IMPLIES:
                        val = (!lhs.eval(inter) || rhs.eval(inter));
                        break;
                   case OR:
                        val = (lhs.eval(inter) || rhs.eval(inter));
                        break;
                   case AND:
                        val = (lhs.eval(inter) && rhs.eval(inter));
                        break;
                   case NOT:
                        val = !lhs.eval(inter);
                        break;
                   case ATOM:
                        val = inter.get(getLabel());
                        break;
                   case FALSE:
                        val = false;
                        break;
                   case TRUE:
                        val = true;
                        break;
                   default:
                        val = null;
                        break;
              return val;
    }The eval() method is all well and good, but because a SimpleNode's children are SimpleNodes too then you can't recursively call eval() on the children without first defining an eval for type SimpleNode - and if I did that then there'd be no point making one for Sentence in the first place.
    Again, the reason I don't want to edit SimpleNode directly is because it's generated by JavaCC.
    What I did before was just have a completely separate class that only contained helper methods, so I'd just use
    LogicOperations.eval(mySimpleNode, myInterpretation);
    instead of
    mySimpleNode.eval(myInterpretation);
    package logic;
    import java.util.*;
    import parser.*;
    public class LogicOperations {
         public static Boolean eval(SimpleNode root, Interpretation inter) {
              Boolean val = null;
              SimpleNode left = null;
              SimpleNode right = null;
              switch (root.jjtGetNumChildren()) {
              case 1:
                   left = root.jjtGetChild(0);
                   right = null;
                   break;
              case 2:
                   left = root.jjtGetChild(0);
                   right = root.jjtGetChild(1);
                   break;
              default:
                   break;
              switch (root.getID()) {
              case LogicParserTreeConstants.JJTROOT:
                   val = eval(left, inter);
                   break;
              case LogicParserTreeConstants.JJTVOID:
                   val = null;
                   break;
              case LogicParserTreeConstants.JJTCOIMP:
                   val = (eval(left, inter) == eval(right, inter));
                   break;
              case LogicParserTreeConstants.JJTIMP:
                   val = (!eval(left, inter) || eval(right, inter));
                   break;
              case LogicParserTreeConstants.JJTOR:
                   val = (eval(left, inter) || eval(right, inter));
                   break;
              case LogicParserTreeConstants.JJTAND:
                   val = (eval(left, inter) && eval(right, inter));
                   break;
              case LogicParserTreeConstants.JJTNOT:
                   val = !eval(left, inter);
                   break;
              case LogicParserTreeConstants.JJTATOM:
                   val = inter.get(root.getLabel());
                   break;
              case LogicParserTreeConstants.JJTCONSTFALSE:
                   val = false;
                   break;
              case LogicParserTreeConstants.JJTCONSTTRUE:
                   val = true;
                   break;
              default:
                   val = null;
                   break;
              return val;
    }It's entirely likely that I've missed what you were trying to say with the good ole 'has a' relationship ting Corlettk, let me know if so

  • Using Timestamp [TS] in the output file name

    Hello Everyone,
    i am trying to get the timestamp into the output file generated by the store file atom. Since my Outbound channel is void i thought i could use:
    [TS]
    or
    [yyyy][mm][dd][hour][min][sec]
    My File Specification is: C:\Temp\Out\blabla[TS].xml and unfortunatelythe outputfile are named: blabla[TS].xml
    What am I doing wrong? Can i not use those placeholders in an atom?
    Help is greatly appreciated
    Best regards
    Simon

    Hi Simon,
    Now I see, you're trying to maintain the timestamp in the SLD FILO section and not in a store file atom of an integration scenario.
    In this case, please check the following help document:
    filePattern
    To define the outbound file pattern, define the directory and the file specification. Enter the full path. The integration framework supports Microsoft Windows UNC (Universal Naming Convention) names. The directory you enter must exist in the file system. The user for directory access must have the necessary rights in the file system.
    You can use the following special characters and variables:
    Character/
    Variable
    Description
    To introduce  numbering in the file directory use ?.
    If you enter  for example data????.xml, the integration framework creates an outbound file called data0000.xml, if the directory is empty. If a file, following this naming  convention, already exists in the outbound directory, the next generated file  name is data<last  number>+1.xml. If data0000.xml already exists in the directory, the next file in the directory  is data0001.xml.
    [vbiu]
    This is a placeholder for a value you can  define in scenario package processing. If you use the value, add the b1im_filename attribute directly in the outbound payload.
    <xsl:template  name="transform">
          <xsl:attribute  name="b1im_filename">myName</xsl:attribute>
    </xsl:template>  
    [TS]
    To add a  timestamp to the file name, use the variable. This gives you another  possibility to define unique file names.
    [yyyy]
    Adds the  current year in four digits to the file name
    [yy]
    Adds the  current year in two digits to the file name
    [mm]
    Adds the  current month to the file name
    [dd]
    Adds the  current day to the file name
    [hour]
    Adds the  current hour to the file name
    [min]
    Adds the  current minute to the file name
    [sec]
    Adds the  current second to the file name
    You can also combine the variables. For example file[TS]??.[hour][min].txt
    Here is a screenshot of my SLD FILO definition and from the result:
    Best regards
    Bastian
    P.S.: just in case you need to define a filename in the integration step for the store file atom, here is a screenshot:

  • Error While Importing DTD to XI

    Hi all,
    I have a DTD from cxml.org. While importing that DTD into the XI as external definitions, the message types couldn't be shown.
    Can anybody please suggest the reason?
    Any help will be appriciated.
    Kind regards,
    Kulwant

    Hi,
    Thanks alll for reply. Let me bit explain more. While i import this DTD, i get an error in the WSDL tab in the imported external definitions screen,
    Unable to convert imported document to WSDL
    Reason: Entity "Method.ANY" already declared
    Check the selected category
    Can any body suggest
    I have posted the dtd below:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
        For cXML license agreement information, please see
        http://www.cxml.org/home/license.asp
        $Id: //ariba/cxml/modules/Common.mod#6 $
    -->
    <!--
        A few character entities the XML recommendation says should be defined
        "for interoperability" with existing SGML parsers.  By default, these
        are not included to avoid warnings (about entity redefinition) from
        many XML parsers.
    -->
    <!ENTITY % SGML-help "IGNORE">
    <![%SGML-help;[
    <!ENTITY lt     "&#38;#60;">
    <!ENTITY gt     "&#62;">
    <!ENTITY amp    "&#38;#38;">
    <!ENTITY apos   "&#39;">
    <!ENTITY quot   "&#34;">
    ]]>
    <!--
        Common types used throughout the cXML definition.
        The types try to follow the XML DATA definition submitted to the W3C. See
        the following for more information,
            http://msdn.microsoft.com/xml/reference/schema/datatypes.asp
            http://www.w3c.org/TR/1998/NOTE-XML-data-0105/
    -->
    <!-- Atomic-level Types -->
    <!ENTITY % bin.base64 "CDATA">
    <!ENTITY % bin.hex "CDATA">
    <!ENTITY % boolean "(0 | 1)">    <!-- 0 is false, 1 is true -->
    <!ENTITY % char "CDATA">
    <!ENTITY % date "CDATA">
    <!ENTITY % datetime.tz "CDATA">  <!-- Time zone is required -->
    <!ENTITY % fixed.14.4 "CDATA">
    <!ENTITY % i8 "CDATA">
    <!ENTITY % int "%i8;">
    <!ENTITY % r8 "CDATA">
    <!ENTITY % number "CDATA">       <!-- No limit on number of digits, unlike
                                          %r8; -->
    <!ENTITY % string "CDATA">
    <!ENTITY % time.tz "CDATA">      <!-- Time zone is required -->
    <!ENTITY % duration "CDATA">      <!--ISO8601 duration http://www.w3.org/TR/xmlschema-2/#duration  -->
    <!ENTITY % ui8 "CDATA">
    <!ENTITY % uint "%ui8;">         <!-- Unique to this specification -->
    <!ENTITY % uri "CDATA">
    <!ENTITY % uuid "CDATA">
    <!-- Higher-level Types -->
    <!--
        NOTE: The following is a temporary hack to allow empty values for
        some attributes with these types.  The nmtoken entity should resolve to
        NMTOKEN.
    -->
    <!ENTITY % nmtoken "CDATA">      <!-- Any combination of XML name chars. -->
    <!ENTITY % isoLangCode "%nmtoken;">         <!-- ISO 639 Language Code -->
    <!ENTITY % isoCountryCode "%nmtoken;">      <!-- ISO 3166 Country Code -->
    <!ENTITY % isoCurrencyCode "%nmtoken;">     <!-- ISO 4217 Currency Code -->
    <!ENTITY % xmlLangCode "%nmtoken;"> <!-- Language code as defined by XML
                                             recommendation: Language and
                              country. -->
    <!ENTITY % URL "%uri;">
    <!--
        For cXML license agreement information, please see
        http://www.cxml.org/home/license.asp
        $Id: //ariba/cxml/schema/Modules/Base.mod#8 $
    -->
    <!--
        This file defines the basic elements used to build higher level
        constructs in cXML.
    -->
    <!-- Basic Name/Data Elements -->
    <!--
        Name is used to provide an identifier for other elements.
        xml:lang
            The language in which the name is written.
    -->
    <!ELEMENT Name (#PCDATA)> <!-- string -->
    <!ATTLIST Name
        xml:lang  %xmlLangCode;  #REQUIRED
    >
    <!--
        An Extrinsic is an element which can be used to extend the data
        associated with known elements.
        Since this Element is of type ANY, it could contain any arbitrary XML
        document within itself, or a binary ![CDATA[]] document.
        name
            Name used to identify this extrinsic.
    -->
    <!ELEMENT Extrinsic ANY>
    <!ATTLIST Extrinsic
        name  %string;  #REQUIRED
    >
    <!--
        Description is a string which describes something.
        Though text may be interspersed with ShortName elements in this content
        model, placing the ShortName at the beginning or end of the element is
        much preferred.  At most one ShortName element is allowed per
        Description.  The intended content model would be more like
        (( ShortName, #PCDATA ) | ( #PCDATA | ShortName? )) if DTD syntax
        supported it.
        xml:lang
            The language in which the description is written.
    -->
    <!ELEMENT Description ( #PCDATA | ShortName )* > <!-- mixed: string and
                                                          ShortName -->
    <!ATTLIST Description
        xml:lang  %xmlLangCode;  #REQUIRED
    >
    <!--
        A short string which describes something in fewer characters than the
        entire Description.  This should be used when limited space is available.
        For example, a table of elements might show the ShortName's of each.  A
        linked "details" view would show the entire Description (including the
        ShortName).  Without a ShortName, the user interface must default to a
        truncation of the Description.
        This element does not require an xml:lang attribute since it appears only
        within a Description element.  The language of the ShortName must match
        that of the surrounding Description.
    -->
    <!ELEMENT ShortName (#PCDATA)> <!-- string -->
    <!-- Telephone Number Elements -->
    <!--
        International ITU dial code for the country code in question.  This
        code would be entered after any escape code necessary to begin
        International dialing.  That is, the escape code does not appear in the
        content of this element.
        isoCountryCode
            The ISO 3166 2-letter country code for the dial code in question.
    -->
    <!ELEMENT CountryCode (#PCDATA)> <!-- uint -->
    <!ATTLIST CountryCode
        isoCountryCode  %isoCountryCode;  #REQUIRED
    >
    <!--
        The areacode or city code within a CountryCode.
    -->
    <!ELEMENT AreaOrCityCode (#PCDATA)> <!-- uint -->
    <!--
        The local number part of a telephone number.
    -->
    <!ELEMENT Number (#PCDATA)> <!-- string -->
    <!--
        An extension within relative to the Number element. This element has no
        meaning without an associated Number element.
    -->
    <!ELEMENT Extension (#PCDATA)> <!-- uint -->
    <!--
        TelephoneNumber represents international telephone numbers.
    -->
    <!ELEMENT TelephoneNumber (CountryCode, AreaOrCityCode, Number, Extension?)>
    <!--
         Phone is a "named" TelephoneNumber.
         name
              specifies an identifier which indicates the type of phone number.
              US examples would include "work","home", etc.
    -->
    <!ELEMENT Phone (TelephoneNumber)>
    <!ATTLIST Phone
        name  %string;  #IMPLIED
    >
    <!--
        Fax number.
    -->
    <!ELEMENT Fax (TelephoneNumber | URL | Email)>
    <!ATTLIST Fax
        name  %string;  #IMPLIED
    >
    <!-- Addressing Elements -->
    <!--
        URL. A string which represents a URL
    -->
    <!ELEMENT URL (#PCDATA)> <!-- URL -->
    <!ATTLIST URL
        name  %string;  #IMPLIED
    >
    <!--
        An email address. Address must conform to RFC 821 (SMTP Standard).
        preferredLang
            optional language that the email owner prefers to receive
            emails in. Refer to the definition of xmlLangCode entity.
    -->
    <!ELEMENT Email (#PCDATA)> <!-- string -->
    <!ATTLIST Email
        name          %string;       #IMPLIED
        preferredLang %xmlLangCode;  #IMPLIED
    >
    <!--
        Contact represents an entity at a location. The nature of this
        element is that it represents a communication "end point" for a
        location.
        role
            Position this person or group plays in the procurement process.
            Likely values include endUser, administrator, purchasingAgent,
            technicalSupport, customerService, sales,
            supplierCorporate, supplierMasterAccount, supplierAccount,
            buyerCorporate, buyerMasterAccount, buyerAccount, buyer,
            subsequentBuyer. Other values may be allowed in some cases.
            from and to roles are reserved for future use.
        addressID
            An id for the address. Needed to support address codes for
            relationships that require id references.
    -->
    <!ELEMENT Contact (Name, PostalAddress*, Email*, Phone*, Fax*, URL*)>
    <!ATTLIST Contact
        role             NMTOKEN           #IMPLIED
        addressID        %string;          #IMPLIED
    >
    <!--
        The DeliverTo part of an Address. This would be internal to the actual
        address know to the outside world. Similar to what an extension is to a
        TelephoneNumber.
    -->
    <!ELEMENT DeliverTo (#PCDATA)> <!-- string -->
    <!--
        Street is a single line of an Address' location.
    -->
    <!ELEMENT Street (#PCDATA)> <!-- string -->
    <!--
        City is the name of the city in an Address' location.
    -->
    <!ELEMENT City (#PCDATA)> <!-- string -->
    <!--
        State is an optional state identifier in an Address' location.
    -->
    <!ELEMENT State (#PCDATA)> <!-- string -->
    <!--
        PostalCode (I have no idea how to describe it)
    -->
    <!ELEMENT PostalCode (#PCDATA)> <!-- string -->
    <!--
        Country is the name of the country in an Address' location.  The
        content of this element is a string which may (for example) be printed
        directly to a shipping label.  The content is the human-readable
        equivalent of the isoCountryCode used by applications.
        isoCountryCode
            The ISO 3166 2-letter country code for this country.
    -->
    <!ELEMENT Country (#PCDATA)> <!-- string -->
    <!ATTLIST Country
        isoCountryCode  %isoCountryCode;  #REQUIRED
    >
    <!--
        PostalAddress is a real-world location for a business or person.
    -->
    <!ELEMENT PostalAddress (DeliverTo*, Street+, City, State?,
                             PostalCode?, Country)>
    <!ATTLIST PostalAddress
        name  %string;  #IMPLIED
    >
    <!--
        Address is the association of a Contact and an Location.
        isoCountryCode
            The ISO 3166 2-letter country code for the country containing this
            location.
        addressID
            An id for the address.  Needed to support address codes for
            relationships that require id references.  An example would be a
            shipping code.
    -->
    <!ELEMENT Address (Name, PostalAddress?, Email?, Phone?, Fax?, URL?)>
    <!ATTLIST Address
        isoCountryCode  %isoCountryCode;  #IMPLIED
        addressID       %string;          #IMPLIED
    >
    <!-- Financial Elements -->
    <!--
        Money is the representation of the object used to pay for items.
        currency
            specifies the currency in which amount is stated, must conform to ISO
            4217 currency codes.
        alternateAmount
            the amount of money in the alternateCurrency. Optional and used to
            support dual-currency requirements such as the Euro.
        alternateCurrency
            specifies the currency in which the alternateAmount is stated, must
            conform to ISO 4217 currency codes.
    -->
    <!ELEMENT Money (#PCDATA)> <!-- number -->
    <!ATTLIST Money
        currency           %isoCurrencyCode;  #REQUIRED
        alternateAmount    %number;           #IMPLIED
        alternateCurrency  %isoCurrencyCode;  #IMPLIED
    >
    <!--
        Optional textual child for communicating arbitrary comments or
        description along with the parent.
        Though text may be interspersed with Attachment elements in this content
        model, grouping the Attachment list at the begging or end of the element
        is much preferred.  The intended content model would be more like
        (( Attachment+, #PCDATA ) | ( #PCDATA | Attachment* )) if the DTD syntax
        supported it.
        xml:lang
            The language in which the Comments are written.  This attribute
        will be required in a future version of cXML.  (Leaving it out is
        deprecated.)
    -->
    <!ELEMENT Comments ( #PCDATA | Attachment )* > <!-- mixed: string and
                                                        opt. Attachment list -->
    <!ATTLIST Comments
        xml:lang  %xmlLangCode;  #IMPLIED
    >
    <!--
        Optional child of Comments element referencing a part in a multipart MIME
        transmission.
        The contained URL must use the scheme "cid:".  This is the identifier for
        the referenced attachment within the larger transmission.  Must match the
        Content-ID header of one (and only one) part of the MIME transmission
        containing this cXML document.  May also be used to retrieve the
        attachment file separately.
    -->
    <!ELEMENT Attachment (URL)>
    <!---
        Reference to a remote attachment.
        AttachmentReference is used inside Extrinsic elements that have a
        predefined name of "Attachments".
        In the context of AttachmentReference, the domain attribute of
        InternalID is currently optional. However, as a way to prevent
        circular request paths, the sending application may use a
        predefined value of "local" to indicate that the attachment
        requested is local to the other application.
        length
            length of the attachment in bytes.
    -->
    <!ELEMENT AttachmentReference (Name, Description, InternalID)>
    <!ATTLIST AttachmentReference
        length  %uint;  #IMPLIED
    >
    <!--
        Price per unit of item.
    -->
    <!ELEMENT UnitPrice (Money)>
    <!--
        Reference to an earlier document (for example, OrderRequest).  In a
        StatusUpdateRequest, this element identifies the purchase order to be
        updated.
        payloadID
            A unique identifier for the document.  Copied directly from the
            cXML element of the original document.
    -->
    <!ELEMENT DocumentReference EMPTY>
    <!ATTLIST DocumentReference
        payloadID       %string;      #REQUIRED
    >
    <!ELEMENT InternalID (#PCDATA)> <!-- string -->
    <!ATTLIST InternalID
        domain   %string;  #IMPLIED
    >
    <!-- ====
        Common to most variants of the PunchOut transaction set.  Defined here
        to be easily shared between multiple DTD files without requiring
        inclusion of Transaction.mod in all of them.
        All of the PunchOut transaction sets include an originating Request
        (ProviderSetupRequest for example), relatively simple Response
        (PunchOutSetupResponse for example) and final Message
        (ProviderDoneMessage or PunchOutOrderMessage).  The Request and
        Response comprise a back-end transaction between two cooperating
        applications that wish to extend an interactive session from one to the
        other.  The Request provides the destination application with
        authentication, identification and other setup information.  The
        Response provides the originating application with a unique starting
        location for the interactive (HTML) session at the destination system.
        After receiving a Response of this type, the originating application
        redirects the user's browser to the provided location.  (For some
        non-HTML applications, opening a new browser window at that location
        may be more appropriate.)  The destination system eventually provides
        an HTML form to the user's browser.  This form submits the final
        Message to close the remote session, return that user to the
        originating application and carry any required information back to the
        originating application.
    ==== -->
    <!--
        OriginatorCookie - Identification of a specific PunchOut session.  Used
        in both originating Request and later Message that returns user to
        originating application.
        Note: The BuyerCookie element used in a 'regular' PunchOut transaction
        (defined in Transaction.mod) is of type ANY.  That does not seem
        useful.  The string required below better matches the needs for this
        element.  Future transactions similar to the PunchOut transaction will
        use this element.
    -->
    <!ELEMENT OriginatorCookie (#PCDATA)>
    <!--
        BrowserFormPost - Location to which the user's browser must submit the
        final Message.  This location (carried in the originating Request) does
        not need to be specific to a PunchOut session since the
        OriginatorCookie is returned in the Message.
    -->
    <!ELEMENT BrowserFormPost (URL)>
    <!--
        SelectedService - Identification of a service offered by this provider
        and requested in this transaction.  Used only in the originating
        Request.
    -->
    <!ELEMENT SelectedService (#PCDATA)>
    <!--
        StartPage - Location to which the user's browser must be redirected to
        begin the interactive portion of the session at the remote site.  The
        destination system returns this information in the Response document.
        This location must be specific to a particular session.  It is
        effectively a one time key, providing authenticated entry into the
        destination system.
    -->
    <!ELEMENT StartPage (URL)>
    <!--
        ReturnData - Any information the originator must know about the
        completed operation at the provider site.  The ReturnValue is for
        applications; the Name is for human consumption (direct presentation in
        the User Interface of the application).  Where appropriate for the
        possible services, this element may appear in the final Message for a
        PunchOut session.
        name
            An identifier for the data returned.  Provides a meaning for the
            contents of a ReturnData element.
    -->
    <!ELEMENT ReturnData (ReturnValue, Name)>
    <!ATTLIST ReturnData
        name  %string;  #IMPLIED
    >
    <!ELEMENT ReturnValue (#PCDATA)>
    <!--
        Defines a time range. The start and end can be unbounded
        startDate
            The starting date of the time range
        endDate
            The ending date of the range
    -->
    <!ELEMENT TimeRange EMPTY>
    <!ATTLIST TimeRange
        startDate      %datetime.tz;         #IMPLIED
        endDate        %datetime.tz;         #IMPLIED
    >
    <!--
        Defines a period in time.
        startDate
            The starting date of the period
        endDate
            The ending date of the period
    -->
    <!ELEMENT Period EMPTY>
    <!ATTLIST Period
        startDate      %datetime.tz;         #REQUIRED
        endDate        %datetime.tz;         #REQUIRED
    >
    <!--
        Must be a UN/CEFACT (Recommendation 20) unit of measure code.
    -->
    <!ELEMENT UnitOfMeasure (#PCDATA)> <!-- nmtoken -->
    <!--
        Defines a reference to a term which is defined
        in another document.
        termName
            The name of the ID attribute containing the term.
        term
            The value of that attribute (i.e., the term itself).
    -->
    <!ELEMENT TermReference EMPTY>
    <!ATTLIST TermReference
         termName %string; #REQUIRED
         term %string; #REQUIRED
    >
    <!--
        Defines an optionally named monetary rate at which goods or services are
        charged or paid.
        Money
            The amount of Money per UnitOfMeasure to be charged or paid.
        UnitOfMeasure
            Unit of measure.
        TermReference
            Identifies the definition of this UnitRate
            (found, for example,  in contracts, master agreements, and other documents
            which may or may not be cXML documents).
    -->
    <!ELEMENT UnitRate (
        Money,
        UnitOfMeasure,
        TermReference?
    )>
    <!--
        The rate information used to define the rate of a purchase.  For
        example, this could be the total room rate for 4 nights of stay
        at a hotel.
        Total
            The total amount for the rate.  The total amount must equal
            to quantity x UnitRate.
        UnitRate
            The single unit rate.
        Description
            Textual description for the rate.  For example, hotel nightly rate.
        Quantity
            The quantity.  For example, a 4 nights stay at a hotel will
            have quantity set to 4 with UnitofMesure in UnitRate set to Day.
    -->
    <!ELEMENT Rate (Total, UnitRate, Description?)>
    <!ATTLIST Rate
        quantity    %r8;    #REQUIRED
    >
    <!--
        The total for something.
    -->
    <!ELEMENT Total (Money)>
    <!--
        For cXML license agreement information, please see
        http://www.cxml.org/home/license.asp
        $Id: //ariba/cxml/modules/Version.mod#4 $
    -->
    <!--
         Another top-level entity used in Transport.mod.  Defined here to allow
         easy updates to the release version of cXML without opening
         Transport.mod.  This should also provide an easy file to search for
         the current release version string.
    -->
    <!-- cxml.version
        Current default string for the cXML@version attribute.  Corresponds to
        the final directory of the SYSTEM identifier used in all up-to-date
        cXML documents.
        For easy parsing of this file, do not remove whitespace surrounding the
        actual version string.
    -->
    <!ENTITY cxml.version "1.2.019" >
    <!--
        For cXML license agreement information, please see
        http://www.cxml.org/home/license.asp
        $Id: //ariba/cxml/schema/Modules/Supplier.mod#1 $
    -->
    <!--
        Supplier of goods and services. Includes a list of SupplierIDs which
        identify the Supplier.
        corporateURL
            URL to web site about the supplier
        storeFrontURL
            URL to web site where a user can shop or browse
    -->
    <!ELEMENT Supplier (Name, Comments?, SupplierID+, SupplierLocation*)>
    <!ATTLIST Supplier
        corporateURL   %URL;  #IMPLIED
        storeFrontURL  %URL;  #IMPLIED
    >
    <!--
        One of the locations for a supplier. Supplier location is
        generally a physical location.
    -->
    <!ELEMENT SupplierLocation (Address, OrderMethods)>
    <!--
        OrderMethods is the list of methods by which one can order
        from a supplier. The contact element is the technical contact
        who should be able to assist with order processing issues.
        The list is to be ordered by supplier preference, the first
        element having the highest degree of preference.
    -->
    <!ELEMENT OrderMethods (OrderMethod+, Contact?)>
    <!--
        OrderMethod is a method for ordering. It is comprised of a
        target address for the order and the protocol expected by
        the address.
    -->
    <!ELEMENT OrderMethod (OrderTarget, OrderProtocol?)>
    <!--
        OrderTarget represents an address to which orders can be
        sent.
    -->
    <!ELEMENT OrderTarget (Phone | Email | Fax | URL | OtherOrderTarget)>
    <!--
        OrderProtocol is the communication method to be used when
        communicating an order to a supplier. An example would be "cXML".
    -->
    <!ELEMENT OrderProtocol (#PCDATA)> <!-- string -->
    <!--
        OtherOrderTarget represents an address which is not enumerated by
        default in the OrderTarget Element. This may contain address targets
        beyond the ability of this document to describe.
        name
            Optional name for target.
    -->
    <!ELEMENT OtherOrderTarget ANY>
    <!ATTLIST OtherOrderTarget
        name  %string;  #IMPLIED
    >
    <!--
        Definition of a supplier id.  A supplier id is a (domain, value)
        pair so that suppliers have the flexibility to define their id's
        according to an arbitrary convention (e.g., (DUNS, 12345),
        (TaxID, 88888888)).
        domain
            the domain of the id
    -->
    <!ELEMENT SupplierID (#PCDATA)> <!-- string -->
    <!ATTLIST SupplierID
        domain  %string;  #REQUIRED
    >
    <!--
       Defines a List of Suppliers that might be associated with a quote Item. Used in
       ItemOut.
    -->
    <!ELEMENT SupplierList (Supplier+)>
    <!--
        For cXML license agreement information, please see
        http://www.cxml.org/home/license.asp
        $Id: //ariba/cxml/modules/Item.mod#6 $
    -->
    <!--
        ID with which the item's manufacturer identifies the item.
    -->
    <!ELEMENT ManufacturerPartID (#PCDATA)> <!-- string -->
    <!--
        Name of the item's manufacturer.
        xml:lang
            The language in which the ManufacturerName is written.  This
        attribute will be required in a future version of cXML.  (Leaving it
        out is deprecated.)
    -->
    <!ELEMENT ManufacturerName (#PCDATA)> <!-- string -->
    <!ATTLIST ManufacturerName
        xml:lang %xmlLangCode; #IMPLIED
    >
    <!--
        Classification is used to group items into similar categories.
        domain
            "name" of classification, ie., SPSC
    -->
    <!ELEMENT Classification (#PCDATA)> <!-- string -->
    <!ATTLIST Classification
        domain  %string;  #REQUIRED
    >
    <!--
         LeadTime specifies, in days, the amount of time required to
         receive the item.
    -->
    <!ELEMENT LeadTime (#PCDATA)>   <!-- uint -->
    <!--
        How the supplier identifies an item they sell.
        If SupplierPartID does not provide a unique key to identify the item,
        then the supplier should generate a key which identifies the part
        uniquely when combined with the SupplierID and SupplierPartID. The
        key is called SupplierPartAuxiliaryID.
        An example is where a Supplier would use the same PartID for an
        item but have a different price for units of "EA" versus "BOX".
        In this case, the ItemIDs should be:
        <ItemID>
            <SupplierPartID>pn12345</SupplierPartID>
            <SupplierPartAuxiliaryID>EA</SupplierPartAuxiliaryID>
        </ItemID>
        <ItemID>
            <SupplierPartID>pn12345</SupplierPartID>
            <SupplierPartAuxiliaryID>
               <foo>well formed XML here</foo>
            </SupplierPartAuxiliaryID>
        </ItemID>
        In this case, the "foo" element must be defined in an internal subset
        sent with the cXML document.  Otherwise, parsers will not be able to
        validate that document.
        In a preferred approach, the sending application may escape the contained
        XML using CDATA sections.  This would appear as:
           <SupplierPartAuxiliaryID>
               <![CDATA[<foo>well formed XML here</foo>]]>
           </SupplierPartAuxiliaryID>
        Finally, the angle brackets could be escaped using XML character
        entities.  This might be a bit harder for humans to read.  For example:
           <SupplierPartAuxiliaryID>
               &lt;foo&gt;well formed XML here&lt;/foo&gt;
           </SupplierPartAuxiliaryID>
    -->
    <!ELEMENT SupplierPartID (#PCDATA)> <!-- string -->
    <!ELEMENT SupplierPartAuxiliaryID ANY>
    <!--
        A unique identification of an item. SupplierID is not required since
        ItemIDs never travel alone.
        ItemIDs used to define a Supplier/Commodity level Blanket Order Item should
        use Empty SupplierPartID tag. These type of items do not have specific part numbers
        at the time of placing the Blanket Order. There will be subsequent release orders
        or invoices that will define the SupplierID.
    -->
    <!ELEMENT ItemID (SupplierPartID, SupplierPartAuxiliaryID?)>
    <!--
        ItemDetail contains detailed information about an item. All the data that
        a user would want to see about an item instead of the bare essentials
        that are represented in the ItemID.
        LeadTime
            time in days to receive the item
    -->
    <!ELEMENT ItemDetail (UnitPrice, Description+, UnitOfMeasure,
                          Classification+, ManufacturerPartID?,
                          ManufacturerName?, URL?, LeadTime?, Extrinsic*)>
    <!--
         Item details specific for items that describe blanket purchase order items.
         This element should only be used for items in a purchase order of
         type "blanket"     
    -->
    <!ELEMENT BlanketItemDetail (Description+, MaxAmount?, MinAmount?,
                                 MaxQuantity?, MinQuantity?,
                        UnitPrice?, UnitOfMeasure?,
                        Classification*, Extrinsic*)>
    <!--
        For cXML license agreement information, please see
        http://www.cxml.org/home/license.asp
        $Id$
    -->
    <!--
        This element captures travel information.  It could be one of four
        types: air, car rental, hotel or rail.
        AirDetail
            Air travel detail.
        CarRentalDetail
            Car rental detail.
        HotelDetail
            Hotel detail.
        RailDetail
            Rail detail.
        PolicyViolation
            List of policy violations (if any) associated with this
            travel line item.
        Comments
            Top level comments for this travel line item (if any).  This
            is not the policy violation comment but a top level comment
            given by the user for this travel line item while in Travel
            Booking Provider's web site.
        TermsAndConditions
            List of Terms and conditions (if any) associated with this
            travel line item.
        confirmationNumber
            A unique confirmation number that is useful to both the
            traveler and the vendor who is providing the service for this
            travel line item.  For example, hotel reservation number or
            e-ticket number from the airline.
        pnrLocator
            Passenger Name Record (PNR) Locator that is useful to the
            Travel Booking Provider.
        quoteExpirationTime
            Date and time that this quote will expire.  This value is
            normally supplied in the PunchoutOrderMessage.  If no value is
            supplied, it is assumed that there is no expiration time or
            date for this quote.
    -->
    <!ELEMENT  TravelDetail ((AirDetail | CarRentalDetail | HotelDetail | RailDetail),
                              PolicyViolation*,
                              Comments?,
                              TermsAndConditions?)>
    <!ATTLIST TravelDetail
        confirmationNumber  %string;        #REQUIRED
        pnrLocator          %string;        #IMPLIED
        quoteExpirationTime %datetime.tz;   #IMPLIED
    >
    <!-- Air -->
    <!--
        Air detail information for the air trip.
        TripType
            Round Trip, One Way, or Multi Leg
        AirLeg
            Different air leg that makes up this air detail.
            For example a round trip from SFO -> TPE with no stops
            will have two air legs.  One air leg from SFO -> TPE
            and another from TPE -> SFO.
        AvailablePrice
            Other available airfare prices that the user did not pick.
        Penalty
            Penalty amount (if any).  This is normally due to changes or
            cancelation of the ticket.
    -->
    <!ELEMENT AirDetail (TripType,
                         AirLeg+,
                         AvailablePrice*,
                         Penalty?)>
    <!--
        Define a single leg in the air travel.
        Vendor
            Airline vendor name and information.
        AirLegOrigin
            Originating airport for this air leg.
        AirLegDestination
            Destination airport for this air leg.
        BookingClassCode
            Airline booking class code.  This is the de-facto
            airline standard.  For example,
            F, FN, P, R, A      - first class
            C, CN, D, J, I, Z   - business class.
            Y, YN, B, BN, M, H, V, VN, O, Q, QN, S,
                K, KN, L, U, T, W - coach class.
        Rate
            Rate for this particular air leg.  If specify, the total
            of all the rate for the different air legs must add up
            to the total the line item level.
        Meal
            Meal information for this air leg (if any)
        travelSegment
            Textual information to identify this travel segment.
            This information is specific to the Travel Booking Provider.
        departureTime
            Departure date and time for this air leg
        arrivalTime
            Arrival date and time for this air leg
        flightNumber
            Flight number for this air leg
        seatNumber
            Seat number for this air leg
        seatType
             Seat type
                 aisle       - Aisle
                 window      - Window
                 middle      - Middle
        upgrade
            Is this ticket an upgrade?
        stops
            The number of stop for this air leg.
            0 if it is a direct flight.  If no information is supplied
            it is defaulted to 0.
        equipment
            The plane equipment information for this air leg
    -->
    <!ELEMENT AirLeg (Vendor,
                      AirLegOrigin,
                      AirLegDestination,
                      BookingClassCode?,
                      Rate?,
                      Meal*)>
    <!ATTLIST AirLeg
        travelSegment   %string;        #REQUIRED
        departureTime   %datetime.tz;   #REQUIRED
        arrivalTime     %datetime.tz;   #REQUIRED
        flightNumber    %string;        #REQUIRED
        seatNumber      %string;        #IMPLIED
        seatType        (window | aisle | middle) #IMPLIED
        upgrade         (yes)           #IMPLIED
        stops           %r8;            #IMPLIED
        equipment       %string;        #IMPLIED
    >
    <!--
        Originating airport for this Air Leg.
        Airport
            Originating airport
    -->
    <!ELEMENT AirLegOrigin (Airport)>
    <!--
        Destination airport for this Air Leg.
        Airport
            Destination airport
    -->
    <!ELEMENT AirLegDestination (Airport)>
    <!--
        Airport information that includes the iso airport code
        Address
            Physical adress of the airport.
        airportCode
            The 3 letter IATA airport code.
    -->
    <!ELEMENT Airport (Address?)>
    <!ATTLIST Airport airportCode %string; #REQUIRED>
    <!---
        Meal information used by air, hotel and rail.
        BookingClassCode
            Code for the meal.  For example, airlines use
              B     - Breakfast
                C     - Complimentary liquor
                D     - Dinner
                F     - Food for purchase
                G     - Food and beverage for purchase
                H     - Hot meal
                K     - Continental breakfast
                L     - Lunch
                M     - Meal
                N     - No meal service
                O     - Cold meal
                P     - Liquor for purchase
                R     - Refreshments
                S     - Snack or brunch
                V     - Refreshments for purchase
        Description
            Textual description of the meal, including any special needs
            such as vegetarian or dairy-free.
    -->
    <!ELEMENT Meal (BookingClassCode?, Description?)>
    <!-- Car Rental -->
    <!--
        Car rental information.
        Vendor
            Car rental vendor information.
        CarRentalPickup
            Pickup location for the rental car.
        CarRentalDropoff
            Drop off location for the rental car.
        BookingClassCode
            4 letter code for car.
            1st Letter - M (Mini), E (Economy), C (Compact), S (Standard),
                         I (Intermediate), F (Full size), P (Premium), L (Luxury)
                         V (MiniVan), X (Special)
            2nd Letter - B (2 door), C (2/4 door), D (4 door), T (Convertible),
                         F (Four wheel drive), V (Van), W (Wagon), S (Sport)
                         X (Special)
            3rd Letter - A (Automatic), M (Manual)
            4th Letter - R (A/c), N (No A/C)
        CarRentalFee
            Mutliple car rental fee can be specified to capture the
            break down of different fees.  The total of these fees must
            add up to the total at the line item level.
        LimitedMileage
            Mileage limit information
        AvailablePrice
            Other available prices for car rental that the user did not pick.
        travelSegment
            Textual information to identify this travel segment.
            This information is specific to the Travel Booking Provider.
        pickupTime
            The intended pickup date and time
        dropoffTime
            The intended dropoff date and time
    -->
    <!ELEMENT CarRentalDetail (Vendor,
                               CarRentalPickup,
                               CarRentalDropoff,
                               BookingClassCode?,
                               CarRentalFee+,
                               LimitedMileage?,
                               AvailablePrice*)>
    <!ATTLIST CarRentalDetail
        travelSegment %string;          #REQUIRED
        pickupTime    %datetime.tz;      #REQUIRED
        dropoffTime   %datetime.tz;      #REQUIRED
    >
    <!--
        Physical location where the rental car should be picked up.  This
        is either an Airport or off airport car rental location.
        Airport
            An airport location.
        Address
            Physical address of the car rental location
    -->
    <!ELEMENT CarRentalPickup (Airport | Address)>
    <!--
        Physical location where the rental car should be dropped off.
        This is either an Airport or off-airport car rental location.
        Airport
            An airport location.
        Address
            Physical address of the car rental location
    -->
    <!ELEMENT CarRentalDropoff (Airport | Address)>
    <!--
        This specifies the quantity and the unit of measure of the mileage
        limit.
        UnitOfMeasure
            Unit of measure either miles or kilometers.
        quantity
            The mileage limit amount.
    -->
    <!ELEMENT LimitedMileage (UnitOfMeasure)>
    <!ATTLIST LimitedMileage
        quantity   %r8;      #REQUIRED
    >
    <!--
        Car rental fee information.  CarRentalFee captures the actual
        charges and fee that applies to this rental.  Conditional charges
        such as extra mileages that are over the mileage limit should not
        be specified here but rather in the TermsAndConditions text.
        Total
            Total amount for this car rental fee.  All the total for the rates
            must add up to this amount.
        Rate
            The individual broken-down fee information.
        type
            Type of rate
                baseRate            - Base rental rate
                additionalDriver    - Additional driver fee
                airportAccessFee    - Airport Access fee
                dropOffCharge       - Drop off charge
                vehicleLicensingFee - Vehicle lincensing fee
                touristTax          - Tourist tax
                prepaidGasoline     - Prepaid gasoline charge
                navigationSystem    - Navigation system
                childSeat           - Child seat charge
                luggageRack         - Luggage rack charge
                collisionDamageInsurance    - Collision damage insurance
                liabilityInsurance          - Liability insurance
                mobilePhone         - Mobile phone base charge
                other               - Other charges.
    -->
    <!ELEMENT CarRentalFee (Total, Rate*)>
    <!ATTLIST CarRentalFee
        type (baseRate | additionalDriver | airportAccessFee | dropOffCharge |
              vehicleLicensingFee | touristTax | prepaidGasoline |
              navigationSystem | childSeat | luggageRack | collisionDamageInsurance |
              liabilityInsurance | mobilePhone | other) "baseRate"
    >
    <!-- Hotel -->
    <!--
        Hotel detail information.
        Vendor
            Hotel vendor information.
        Address
            Physical address of the hotel.  This is might be different
            from the address specified in the Vendor field as the vendor
            address might be the head quarter address.
        RoomType
            The type of room reserved.
        BookingClassCode
            Hotel booking class code.
        Meal
            Any complementary meals that are included with the room.  For
            example, complementary continental breakfast.
        Rate
            Hotel rate information.  Multiple rates can be specified.  For
            example, the night rate, valet parking rate, and other rates.
        AvailablePrice
            Other available prices that user did not pick.  Available
            prices can be from the same vendor or different vendor.
        travelSegment
            Textual information to identify this travel segment.  This
            information is specific to the Travel Booking Provider.

  • Stupid question about atomic operations

    Why there are separate atomic classes? Why not make all primitive operations atomic? Is this a performance issue?

    Currently, I'm readin this:
    http://www.oreilly.com/catalog/jthreads3/chapter/ch05.
    pdf . It says that, for example, ++ operation is not
    atomic.++ by nature is a 3 step process--read, add, write. I suppose it would have been technically possible to make that an atomic operation, but it probably would have involved complicating the JLS and JMM, and possibly hurting overall performance of all operations.

  • Burn project in C/GTK

    I was tired of looking for a burn-program that works and is lightweight. So I decided to create my own program, it only depends of cdrkit/dvd+rw-tools/gtk2.
    It works, but i have a problem with the GTK interface. In the "dvd" function i want to popup before every "system" start, but all messages popups when "dvd" function has finished.
    I know that probably this isnt the best way to do it, but the "system" calls and the "forks" works.
    If anyone knows how i can start every message in the correct time...
    Here is the code:
    DVD function:
    static void dvd( GtkWidget *widget, gpointer data )
    int result=0;
    char* mes;
    if (!fork())
    mes = "Making image...";
    message(mes);
    system("mkisofs -R -J -T -o /home/alex/burn.iso /home/alex/tmp/*");
    if (!fork())
    mes = "Deleting temporaly files...";
    message(mes);
    system("rm -R /home/alex/tmp");
    if (!fork())
    mes = "Burning DVD...";
    message(mes);
    system("dvdrecord -v dev=/dev/hdb speed=8 -sao -eject -data /home/alex/burn.iso");
    if (!fork())
    mes = "Process completed.";
    message(mes);
    system("rm /home/alex/burn.iso");
    wait (&result);
    wait (&result);
    wait (&result);
    wait (&result);
    Message function:
    void message (gchar *message) {
    GtkWidget *dialog, *label;
    dialog = gtk_dialog_new_with_buttons ("Message",NULL,GTK_DIALOG_DESTROY_WITH_PARENT, NULL, GTK_RESPONSE_NONE, NULL);
    label = gtk_label_new (message);
    g_signal_connect_swapped (dialog,"response", G_CALLBACK (gtk_widget_destroy),dialog);
    gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label);
    gtk_widget_show_all (dialog);
    Thanks.
    PD: One comment, if it works i will change it for a label. Now i post a popup because it explains good my problem.
    Last edited by icrave (2007-11-16 18:36:57)

    hmm i'll give a shot at a response here, i probably shouldn't though as i have little experience using threads and absolutely none using fork.
    what i'm going to suggest is based off of what i've read from the faq and api documentation over at gtk.org (presuming i understood what i read correctly..). i have no idea if there are better ways to do this kind of stuff nor am i sure if the example code that is provided below will even work properly but after running a quick test it at least _seems_ to work.  i'm hoping someone with more experience using threads can read over it, verify, and correct anything that's wrong.
    why not thread dvd() and have it communicate to the gtk main thread rather than forking? this probably is a cleaner approach and it's not too difficult to do. now if you don't care if the dialog box message() creates appears _exactly_ before your system() calls this will be easier as you can just add message() to the gtk main thread via g_idle_add() and then do the system() call.  otherwise you'll have to make dvd() wait for a signal which the dialog box can send to it once it's displayed, which you can do using a GMutex and a GCond.  so if you don't care about exact timing just ignore the stuff with the GMutex and GCond in the following example
    declare the following variables in the scope of both dvd() and message()
    GCond *data_cond = NULL;
    GMutex *data_mutex = NULL;
    gint iSignal = 0;
    in your main function add the following
    int main(int argc, char *argv[])
    /* add these two function before gtk_init */
    g_thread_init(NULL);
    gdk_threads_init();
    gtk_init(&argc,&argv);
    /* call a function to create the mutex and condition or do it here */
    data_cond = g_cond_new();
    data_mutex = g_mutex_new();
    /* add gdk_threads enter and leave around gtk_main */
    gdk_threads_enter();
    gtk_main();
    gdk_threads_leave();
    have the function in the gtk_main thread that calls dvd() thread it
    void on_some_button_click(GtkWidget *widget, gpointer data)
    GError *error = NULL;
    if(!g_thread_create(dvd,NULL,FALSE,&error))
    p_printerr("Failed to create thread: %s\n",error->message);
    /* exit or something here */
    in dvd do the following each time you want to display a dialog box.
    static gboolean dvd()
    g_mutex_lock(data_mutex);
    /* clear signal flag for dialog box to set */
    iSignal = 0;
    /* create message box in gtk main thread */
    g_idle_add(message,"your message here");
    /* wait for signal from dialog box */
    while(iSignal == 0)
    g_cond_wait(data_cond,data_mutex);
    g_mutex_unlock(data_mutex);
    /* do your system call here, the dialog box has already been displayed at this point */
    system("command");
    make sure message returns FALSE!
    gboolean message(gchar *message)
    /* connect a function to the show signal that will signal back to the dvd() thread */
    g_signal_connect(G_OBJECT(dialog),"show",G_CALLBACK(signal_dvd_function),NULL);
    gtk_widget_show_all(dialog);
    return FALSE;
    add the show function for the dialog window which signals dvd() that it has been displayed
    void signal_thread_test(GtkWidget *widget, gpointer data)
    g_mutex_lock(data_mutex);
    iSignal = 1;
    g_cond_signal(data_cond);
    g_mutex_unlock(data_mutex);
    that should do it, you also probably should make sure that if the dvd thread is running that it can't be called again, which you could do by adding another variable like the iSignal above using the same mutex to access it to see if it's running or not, or use the glib atomic operations to do this.
    also don't forget to add gthread-2.0 to the arguments given to pkg-config when compiling

  • Missing atom

    When I use Feed Validator to validate the Apple Podcast it gives this warging:
    Missing atom:link with rel="self"
    I do not understand very well the explanations. If I understand well to declare the atom just helps the podcast to be found more easitlly. Is that it? Can anyone explain in a simple not technical way if it is good to use this and why?
    I followeb the instructions and I put the code here but it does not work. Can anyone tell me what is missing or wrong?
    http://www.oracio.org/cat/podcast/Site/Podcast/prova.xml

    You can ignore this. Feedburner validates the feed as XML, for a range of RSS readers, not just podcasts for iTunes, 'Atom' is an ancient RSS reader - I imagine very few people use it nowadays. That tag is purely for its benefit and has no effect whatever in iTunes so you can just ignore the matter completely.
    FeedValidator is a very useful tool but be cautious with it. It will sometimes throw up errors which aren't errors or aren't relevant; and there are some things (like use of incompatible media formats) which will throw iTunes but which FeedValidator won't pick up because they don't constitute invalid XML.

  • 2 Hash tables ??

    hello,
    i have a problem when i run the following code and enter an element eg AU it displays gold, but when i type AU1 (i.e Au and 1 atom) it displays the follwing message, not recongising either element or atom occurance, im not sure weather the problem is im running 2 hashtables, any ideas, thank you
    Output when typing AU1
    Welcome to my Chemcial Analzyer
    You entered this Chemical: AU1
    The chemcial you enter was: null
    Occurance: null
    import java.util.*;
    public class test
    /*Chemical Analzyer
    Author: Me
    Version: 1.0
    Date: 05/05/03*/
    public static void main(String[]args)
    System.out.println();
    System.out.println("Welcome to my Chemcial Analzyer");
    System.out.println();
    // Ask user to enter a Chemical
    String FullChem=WinKBInput.readString("Please can you enter the Chemical you wish to be analzeyed");
    //Convert string FullChem to upper case
    String FullChem2=FullChem.toUpperCase();
    //Print full chemcial on the output screen
    System.out.println();
    System.out.println("You entered this Chemical: "+FullChem2);
    System.out.println();
    //From string fullchem save position 0 to 2 in the value First
    String First=FullChem2.substring(0);
    //Hashtable -> storing of objects that have a relationship with a key
    int PlaceElements=20;
    //Array 1 declares first key
    String Keys[]={"AG","AL","C","AU","C","CA","CL","CU","CO","H","HE","HG","K","MG","N","NA","O","PB","S","XE"};
    //Array 2 declares place of chemcial
    String ChemNames[]={"Silver","Aluminium","Carbon","Gold","Calcuim","Chlorine",
    "Copper","Cobolt","Hydrogen","Helium","Mercury","Potassium ","Magnesium ","Nitrogen","Sodium ","Oxygen ","Phosporus ","Lead ","Sulphur","Xenon"};
    Hashtable ht;
    ht=new Hashtable(PlaceElements*2);
    for (int i=0; i<PlaceElements;i++)
    ht.put(Keys, new String(ChemNames[i]));
    //Outputs the full chemical name
    System.out.println("The chemcial you enter was: "+ht.get(First));
    System.out.println();
    //From string fullchem save position 0 to 2 in the value First
    String Second=FullChem2.substring(1);
    //Hashtable -> storing of objects that have a relationship with a key
    int PlaceElements1=5;
    //Array 1 declares first key
    String Keys1[]={"1", "2", "3", "4", "5"};
    //Array 2 declares place of chemcial
    String ChemNames1[]={"Occured Once", "Occured Twice", "Occured 3 Times", "Occured 4 times", "Occured 5 times"};
    Hashtable ht1;
    ht1=new Hashtable(PlaceElements1*2);
    for (int i=0; i<PlaceElements1;i++)
    ht1.put(Keys1[i], new String(ChemNames1[i]));
    //Outputs the full chemical name
    System.out.println("Occurance: "+ht1.get(Second));
    System.out.println();

    I took your original code, formatted it, and made my replacements, and it works! Here it isimport java.util.*;
    /*Chemical Analzyer
    Author: MeVersion: 1.0
    Date: 05/05/03*/
    public class Test {
        public static void main(String[]args){
         System.out.println();System.out.println("Welcome to my Chemcial Analzyer");
         System.out.println();
         // Ask user to enter a Chemical
         //WinKBInput.readString("Please can you enter the Chemical you wish to be analzeyed");
         String FullChem="AU1";  // I dont have WinKBInput
         //Convert string FullChem to upper caseString
         String FullChem2=FullChem.toUpperCase();
         //Print full chemcial on the output screen
         System.out.println();
         System.out.println("You entered this Chemical: "+FullChem2);
         System.out.println();
             //From string fullchem save position 0 to 2 in the value First
             String First=FullChem2.substring(0,2);
             //Hashtable -> storing of objects that have a relationship with a key
             int PlaceElements=20;
             //Array 1 declares first key
             String Keys[]={"AG","AL","C","AU","C","CA","CL","CU","CO","H","HE","HG","K","MG","N","NA","O","PB","S","XE"};
             //Array 2 declares place of chemcial
             String ChemNames[]={"Silver","Aluminium","Carbon","Gold","Calcuim","Chlorine","Copper","Cobolt",
              "Hydrogen","Helium","Mercury","Potassium ","Magnesium ","Nitrogen","Sodium ","Oxygen ",
              "Phosporus ","Lead ","Sulphur","Xenon"};
             Hashtable ht=new Hashtable(PlaceElements*2);
             for (int i=0; i<PlaceElements;i++) ht.put(Keys[ i], new String(ChemNames[ i]));
             //Outputs the full chemical name
             System.out.println("The chemcial you enter was: "+ht.get(First));
             System.out.println();
              //From string fullchem save position 0 to 2 in the value First
              String Second=FullChem2.substring(2,3);
              //Hashtable -> storing of objects that have a relationship with a key
              int PlaceElements1=5;
              //Array 1 declares first key
              String Keys1[]={"1", "2", "3", "4", "5"};
              //Array 2 declares place of chemcial
              String ChemNames1[]={"Occured Once", "Occured Twice", "Occured 3 Times", "Occured 4 times", "Occured 5 times"};
              Hashtable ht1=new Hashtable(PlaceElements1*2);
              for (int i=0; i<PlaceElements1;i++) ht1.put(Keys1[ i], ChemNames1[ i]);
              //Outputs the full chemical name
              System.out.println("Occurance: "+ht1.get(Second));
              System.out.println();
    }You might want to take out the extra curly braces...

  • What's wrong in this? Need help please..

    CREATE OR REPLACE PROCEDURE UPDATE_SOMETABLE
    IS
    BEGIN
    LOOP
    UPDATE SOMETABLE
    SET SEQ_NO = MYSEQ.NEXTVAL
    WHERE ROWNUM<1000;
    EXIT WHEN SQL%ROWCOUNT = 0;
    END LOOP;
    COMMIT;
    END;
    /

    I need  a way to commit rows in batches based on the rownum.Isn't this violating the ACID rule of database? A transaction should not be committed until it is fully complete.
    Check - Atomicity (database systems)
    >
    Example: If one wants to transfer some amount of money from one account to another, then he/she would start a procedure to do it. However, if a failure occurs, then due to atomicity, the amount will either be transferred completely or will not even start. Thus atomicity protects the user from losing money due to a failed transaction.

  • Problem retriving data from TLF

    I 'm having problem retrieving the data i need to from TLF, please have a look at the post i made over at stackoverflow that explains the problem i am having: http://stackoverflow.com/questions/6198736/data-from-tlf-textline. Thanks!

    rawTextLength : int
    [read-only]        The length of the raw text in the text block that became the line,       including the U+FDEF characters representing graphic elements       and any trailing spaces, which are part of the line but not are displayed.
    Your code seems good. I did not tried to get the atom of textline ago, so I can only share the experience I had.
    1.textline.y give me the bottom of the textline not the top. So you need to differ textline.y from textLine.getAtomBounds(atomIndex).y;
    2.When you use TLF, code like "_source.interactionManager.getCommonCharacterFormat"is not recommended.
    You need to write the code as follows to skip the call of getter function when you will use _source.interactionManager many times. Because when you run "a.b", you call the "get b()" in class "a". "get b()" may be a large function and cost a lot.
    var editManager:SelectionManager  = _source.interactionManager as SelectionManager;
    editManager.getCommonCharacterFormat()

Maybe you are looking for