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
GCWhere 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. -
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,
DNDetails 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 PMHi..
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 allI'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);
} -
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:23Thanks 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
SimonHi 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,
KulwantHi,
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 "&#60;">
<!ENTITY gt ">">
<!ENTITY amp "&#38;">
<!ENTITY apos "'">
<!ENTITY quot """>
]]>
<!--
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>
<foo>well formed XML here</foo>
</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. -
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 -
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.xmlYou 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. -
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
-
IMessage on my macbook air will not connect.
iMessage on my macbook air will not connect. It says "Could not sign in. Please check your network connection and try again." I have gone through all the support instructions and a lot of these discussion chats. I have sign out of it and my phone and
-
HT201328 how will i know what carrier the phone is locked with?
how will i know to which carrier is my iphone unlocked.
-
Indesign - Wrong order of pages when printing
Hello I'm using Adobe Indesign CS4. Recently i decided to make my first "booklet". There are 80 pages - mixed text and images. When I try to print it as booklet I have problem with the order of the pages. After the page 26 or so it starts to print th
-
Hi all, I'm having a small problem with a website. http://www.homemakeruk.co.uk/about.html I have placed a video in my page but it is only playing offline. When the site is live online, the video fails to play. Any ideas why? Here is the code: <div i
-
Solving the problem with error 80003 cannot access bb ID update server
Must be done over wi-fi only, switch off the cellphone network, works without a problem for me, hope it will work for everybody