About DBD XML physical storage xml document
Recently I survey about BDB XML,
and I want to know how is it to storage the XML document, what format?? is like Natix storage like in page file ?? So if there are not index can be utilize, the system will use tree travel method to get query answer.
Or there are any document or technical manual support to introduction how DBD XML system internal storage format,how query process, how index build ....etc, because I ready some aboubt document but it major explain how to use the system (like API introduction).
Thanks very much !!
Hi Henry,
The physical nodes store a large amount of information in a record, including it's node ID, it's parent's node ID, it's level in the tree and the node ID of it's last descendant.
Ancestor-descendant relationships can be calculated using the node ID and last descendant ID as upper and lower bounds. Parent-child relationships additionally use the node level information. Sibling relationships need to use the parent's ID to check they have the same parent.
Navigation, on the other hand, uses other node IDs stored in the physical node, or implicit information. For instance if a node has children, it's first child is always the next node record stored. The last child ID is stored in the physical node, since this cannot be similarly calculated, as are the next and previous sibling node IDs.
If you are interested look in dbxml/src/dbxml/nodeStore/NsFormat.(hpp|cpp), which contains the marshaling code for the node storage format.
John
Similar Messages
-
Question about generate xml document
Hi, I'm new to xml can anyone introduce me some tools to generate xml documents? or some faster way to generate xml documents.
a good site for the info www.xml.com or www.oasis.org
xml-spy is a good tool -
Something is wrong about passing xml document to clob
Dear All,
I have a procedure that uses XMLELEMENT to create an XML source. When I try to pass the XML source to the outgoing parameter of the procedure I receive an error saying
"ORA-19011: Character string buffer too small"
When I checked the length of the source it was just 5000 characters long. How is it possible that I can't give this to a clob?
Thank you,
FrankyI'm going to answer it for myself.
Use getclobval() function any you will succeed.
Franky -
Hi,
My problem is about generating XML document. I'd like to be able to generate automaticaly (like what we can get at this kind of URL http://xdbserver:8080/oradb/USER/table_name) XML documents for any relational tables, I want the document being schema based and I want to store them in XDB in the repository.
I do not really matter at the time the way the xml is generated (I just do not want that it takes hours). Is there a way to do that with PL/SQL package or with a java classes?
Thanks in advance.
Vlad1)I'm using this PL/SQL proc to create XML :
(table_name in VARCHAR2)as --generation d'un fichier xml basé sur un schéma pour la table dont le nom est passé en paramètre
qryCtx DBMS_XMLGEN.ctxHandle;
result XMLType;
begin
qryCtx := dbms_xmlgen.newContext('SELECT * from VLAD.' || table_name);
-- set the row header to be EMPLOYEE
DBMS_XMLGEN.setRowTag(qryCtx, table_name);
-- now get the result
result := DBMS_XMLGEN.getXMLType(qryCtx,2); --2 for XMLSchema (1 for a DTD)
--insertion de result dans la table tempo
insert into tempo values(result);
--close context
DBMS_XMLGEN.closeContext(qryCtx);
exception
when others then
dbms_output.put_line(TO_CHAR(sqlerrm));
end;
I saw in the doc that DBMS_XMLGEN.getXMLType(qryCtx,2) with the "2" was for schema but what does it do exactly, does it generate a schema against the table_name?
2)I'd like to put the result which is XMLType in a XML file in the server, is there a way to do it with UTL FILE?
Vlad -
Parse XML document which have xlink/xpointer inside
dear friends,
There are lots of topic talking about parse xml, validating xml with schema and so on, but no one or any book talking about parsing xml document which can parse document with link inside.
According to Mr Meggison at http://www.megginson.com/Background/
we can do it, but he is not expert with this thing.
For example I have 3 XML document. My main XML document, let named it A.XML have XPointer inside and this element pointing to B.XML and C.XML using xpointer. how to parse A.XML and in the same time my SAX recognized this XPointer and parse also element inside B.XML and C.XML.
I am really grateull for any helpful information from you.
best regardsI think you need to look for a SAX or DOM parser that undestands XPointers and knows how to follow them to additional content.
I have used XSLT and specified external documents to it. It knows how to read a document and in effect make a nodeset which can be searched with the XPath capabilities of XSLT.
It sounds like you wnat an <include file="xxx"/> capability and have the parser stop reading the current file, and start reading the second file.
That works in Schemas, but I'm unaware of any way to do it with SAX or DOM in one pass.
It would not be too hard to process the first file, say with DOM.
After the Document is built, go find the <include> elements, read get the attribute needed, build a new Document and merge it into the original Document in place of the <include> element.
Is this more what you want to do?
Dave Patterson -
Hi!
I've managed to preload an image with getBytes.../...total
properties but what about my XML document. Can I get statusinfo
while it loads into FlashPlayer?!?
PS I'm publishing to AS2.
Thanks<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Sudip Karnavat ([email protected]):
I need to parse an XML document consisting of metadata and actual content and load the same into database columns with the body content into a CLOB.
e.g.
<AUTHOR> Mike <AUTHOR>
<HEADLINE> About XML </HEADLINE>
<DOCUMENT>
This document outlines the details of the XML parser for PL/SQL .........
</DOCUMENT>
I need to load the author and headline fields to author and headline fields in the database and DOCUMENT field to a CLOB column.
What approach should I follow? Should I use the XML Parser for PL/SQL ? Are there any sample examples.
Thanks
Sudip<HR></BLOCKQUOTE>
Sudip,
I forgot to add that really what you need to
do is write a transformation using XSLT and
only pick the information you need to store.
If you want just e-mail me the xml file and I
will do that-:) -
XMLTYPE as CLOB storage "inserting large xml document in xml type column"
Hi All,
i have a table containing an xml datatype(non schema based)
i would like to insert a large xml document in it
but an exception is thrown-->"string literal too long"
i tried to use bind variables as a solution"prepared statements as i write in java"
but it didn't work....as xml document is large
when i tried to change the column type to CLOB,it worked but without xml validataion,
although the xml type is mapped to a CLOB in storage, xml type couldn't insert the document
if anyone have a solution plz tell,i needed it urgently
thanks,in advance :-)thx it was very useful :-)
but i am not having any success getting the following statement working using a JDBC connection pool rather than a hard coded URL connection
tempClob = CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);
it works with:
"jdbc:oracle:thin:@server:port:dbname"
Does NOT work with:
datasource.getConnection()
if anyone colud help... -
Question about special characters in XML documents
Hi,
I need to create some XML documents based on documents containing elements containing strings containing accentuated and special characters such as ��� or Asian characters.
I have found the following code claiming that XML documents created by the xformer will have a utf-8 format:
// Write the DOM document to the file
Transformer xformer = TheTF.newTransformer();
xformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");and I have found the InputSource object to be used to read UTF-8 XML documents:
InputSource in = new InputSource(new FileReader(filename));
in.setEncoding("UTF-8");Is this enough to make sure that accentuated and Asian characters (or any other characters) will be converted properly when creating and re-reading the XML document? If one of my elements contain the following text '���33445tata', will the string remain the same when re-read from the XML? Do I need more code to make sure that all conversion will be performed properly and transparently? If yes, can one provide an example?
Thanks!Hi Dr.Clap,
Thanks for your answer, but I am not really sure I understand you. I have performed a test to generate a simple document containing one element. An attribute containing some special characters is added to the element. The element text also contains specials characters.
When I generate the XML into a byte array input and print the content, I get:
<?xml version="1.0" encoding="utf-8" standalone="no"?><UTF8TEST BIBI="��ii��������">tre33������</UTF8TEST>When I parse the document, and print the result, I get:
-- Begin of Parsing
Element Name = UTF8TEST
Attribute Name = BIBI
Attribute Value = �ii����
Found text : tre33���
-- End of Parsingwhich is correct. I am worried by the ��ii� ������-like characters generated in the XML. Should I be worried or shouldn't I? Should I convert these into something looking a more like ASCII, or is this fine?
I am including the code of my example (excluding imports):
public class XMLUTF8_Test extends DefaultHandler {
// Logger
private final static Logger LOG = Logger.getLogger(XMLUTF8_Test.class.getName());
// Static
public static DocumentBuilderFactory DOCUMENT_BUILDER_FACTORY;
public static DocumentBuilder DOCUMENT_BUILDER;
public static TransformerFactory TRANSFORMER_FACTORY;
private static SAXParserFactory FACTORY;
private static SAXParser SAXPARSER;
private static XMLReader XMLREADER;
static {
// Preparing the writting
DOCUMENT_BUILDER_FACTORY = DocumentBuilderFactory.newInstance();
try {
DOCUMENT_BUILDER = DOCUMENT_BUILDER_FACTORY.newDocumentBuilder();
} catch (ParserConfigurationException Ex) {
Debugger.LogUnreachableCodeReachedSituation(LOG, Ex);
TRANSFORMER_FACTORY = TransformerFactory.newInstance();
// Preparing the reading
try {
FACTORY = SAXParserFactory.newInstance();
SAXPARSER = FACTORY.newSAXParser();
XMLREADER = SAXPARSER.getXMLReader();
} catch (ParserConfigurationException Ex) {
Debugger.LogUnreachableCodeReachedSituation(LOG, Ex);
} catch (SAXException Ex) {
Debugger.LogUnreachableCodeReachedSituation(LOG, Ex);
public static void main(String[] args) {
// Perform test
new XMLUTF8_Test();
public XMLUTF8_Test() {
// Saving to File
Document NewDoc = DOCUMENT_BUILDER.newDocument();
Element Root = NewDoc.createElement("UTF8TEST");
Root.setAttribute("BIBI", "�ii����");
Root.setTextContent("tre33���");
NewDoc.appendChild(Root);
ByteArrayOutputStream TheBAOS = new ByteArrayOutputStream();
try {
Source source = new DOMSource(NewDoc);
Result result = new StreamResult(TheBAOS);
Transformer xformer = TRANSFORMER_FACTORY.newTransformer();
xformer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
xformer.transform(source, result);
} catch (TransformerConfigurationException Ex) {
Debugger.LogUnreachableCodeReachedSituation(LOG, Ex);
} catch (TransformerException Ex) {
Debugger.LogUnreachableCodeReachedSituation(LOG, Ex);
// Printing result
System.out.println(TheBAOS.toString());
// Parsing the result
ByteArrayInputStream TheBAIS = new ByteArrayInputStream(TheBAOS.toByteArray());
XMLREADER.setContentHandler(this);
try {
XMLREADER.parse(new InputSource(TheBAIS));
} catch (IOException Ex) {
Debugger.LogUnreachableCodeReachedSituation(LOG, Ex);
} catch (SAXException Ex) {
Debugger.LogUnreachableCodeReachedSituation(LOG, Ex);
@Override
public void startDocument() throws SAXException {
System.out.println("-- Begin of Parsing");
@Override
public void endDocument() throws SAXException {
System.out.println("-- End of Parsing");
@Override
public void startElement(String namespaceURI, String LocalName, String QualifiedName,
Attributes TheAttributes) throws SAXException {
String ElementName = LocalName;
if ("".equals(ElementName)) {
ElementName = QualifiedName; // namespaceAware = false
System.out.println("Element Name = " + ElementName);
if (TheAttributes != null) {
for (int i = 0; i < TheAttributes.getLength(); i++) {
String AttributeName = TheAttributes.getLocalName(i); // Attr name
if ("".equals(AttributeName)) AttributeName = TheAttributes.getQName(i);
System.out.println("Attribute Name = " + AttributeName);
System.out.println("Attribute Value = " + TheAttributes.getValue(AttributeName));
@Override
public void endElement(String namespaceURI, String SimpleName, String QualifiedName) throws SAXException {
@Override
public void characters(char[] buf, int offset, int len) throws SAXException {
String s = new String(buf, offset, len);
System.out.println("Found text : " + s);
}Thanks! -
How to extract the nodes of any given XML document ???
Hello,
Greetings! It is an interesting forum.
A Snippet of XML Schema PurchaseOrder.xsd as given in user guide is as follows
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xdb="http://xmlns.oracle.com/xdb"
version="1.0" xdb:storeVarrayAsTable="true">
<xs:element name="PurchaseOrder" type="PurchaseOrderType"
xdb:defaultTable="PURCHASEORDER"/>
<xs:complexType name="PurchaseOrderType" xdb:SQLType="PURCHASEORDER_T">
<xs:sequence>
<xs:element name="Reference" type="ReferenceType" minOccurs="1"
xdb:SQLName="REFERENCE"/>
<xs:element name="Actions" type="ActionsType" xdb:SQLName="ACTIONS"/>
<xs:element name="Reject" type="RejectionType" minOccurs="0"
xdb:SQLName="REJECTION"/>
<xs:element name="Requestor" type="RequestorType"
xdb:SQLName="REQUESTOR"/>
<xs:element name="User" type="UserType" minOccurs="1"
xdb:SQLName="USERID"/>
<xs:element name="CostCenter" type="CostCenterType"
xdb:SQLName="COST_CENTER"/>
<xs:element name="ShippingInstructions" type="ShippingInstructionsType"
xdb:SQLName="SHIPPING_INSTRUCTIONS"/>
<xs:element name="SpecialInstructions" type="SpecialInstructionsType"
xdb:SQLName="SPECIAL_INSTRUCTIONS"/>
<xs:element name="LineItems" type="LineItemsType"
xdb:SQLName="LINEITEMS"/>
</xs:sequence>
</xs:complexType>
full schema is available in url
http://download-west.oracle.com/docs/cd/B12037_01/appdev.101/b10790/xdb03usg.htm#BABBGIED
The views use XPath expressions and functions such as extractValue() to define the mapping between columns in the view and nodes in the XML document. The following view is created on purchase order schema.
Creating Relational Views On XML Content
CREATE OR REPLACE view PURCHASEORDER_MASTER_VIEW
(REFERENCE, REQUESTOR, USERID, COSTCENTER,
SHIP_TO_NAME,SHIP_TO_ADDRESS, SHIP_TO_PHONE,
INSTRUCTIONS)
AS
SELECT extractValue(value(p),'/PurchaseOrder/Reference'),
extractValue(value(p),'/PurchaseOrder/Requestor'),
extractValue(value(p),'/PurchaseOrder/User'),
extractValue(value(p),'/PurchaseOrder/CostCenter'),
extractValue(value(p),'/PurchaseOrder/ShippingInstructions/name'),
extractValue(value(p),'/PurchaseOrder/ShippingInstructions/address'),
extractValue(value(p),'/PurchaseOrder/ShippingInstructions/telephone'),
extractValue(value(p),'/PurchaseOrder/SpecialInstructions')
FROM PURCHASEORDER p;
When we register XML Schema in Oracle 9i, the schema elements of XML documents are stored as XMLType, that is, stored using object-relational storage techniques.
For a small schema, we could build the above view manually, but for large/nested schema, if we have query to build XML documents node list, it will help us to build Relational Views on XML Content.
How do we extract the nodes of any given XML document through O-R structures or XML DB using XML DB functions?
Any alternate thoughts are welcome.
I appreciate your help.
Regards
RamRam
Once again, I do not think that you can solve the problem you are trying to solve. Fundamentally you need to determine for a given element of a given complex type what are it's child elements. For each of those elements you then need to find out whether or not it in turn has child elements...
Then you have to think about elements defined as ref rather than type, elements that are substituteable, and the rest of possibilities that can be described with XML Schema.
If you can solve that problem you're a better man than I as the saying goes. Anyone rather than give you a fish, I'll show you how to at least put a worm on the hook..
The following query gets the names of the elements inside a each of the global complex types
Good luck, if you come up with a query to do this I'd love to see it...
SQL> column COMPLEX_TYPE format A32
SQL> column ELEMENT format A32
SQL> --
SQL> select extractvalue
2 (
3 value(ct),
4 '/xs:complexType/@name',
5 'xmlns:xs="http://www.w3.org/2001/XMLSchema"'
6 ) COMPLEX_TYPE,
7 extractvalue
8 (
9 value(et),
10 '/xs:element/@name',
11 'xmlns:xs="http://www.w3.org/2001/XMLSchema"'
12 ) ELEMENT
13 from resource_view,
14 table
15 (
16 xmlsequence
17 (
18 extract
19 (
20 res,
21 '/r:Resource/r:Contents/xs:schema/xs:complexType',
22 'xmlns:r="http://xmlns.oracle.com/xdb/XDBResource.xsd"
23 xmlns:xs="http://www.w3.org/2001/XMLSchema"')
24 )
25 ) ct,
26 table
27 (
28 xmlsequence
29 (
30 extract
31 (
32 value(ct),
33 '/xs:complexType/*/xs:element',
34 'xmlns:xs="http://www.w3.org/2001/XMLSchema"'
35 )
36 )
37 ) et
38 where equals_path(res,'/home/SCOTT/poSource/xsd/purchaseOrder.xsd') = 1
39 /
COMPLEX_TYPE ELEMENT
-------------------------------- ------------------------PurchaseOrderType Reference
PurchaseOrderType Actions
PurchaseOrderType Reject
PurchaseOrderType Requestor
PurchaseOrderType User
PurchaseOrderType CostCenter
PurchaseOrderType ShippingInstructions
PurchaseOrderType SpecialInstructions
PurchaseOrderType LineItems
LineItemsType LineItem
LineItemType Description
LineItemType Part
ActionsType Action
RejectionType User
RejectionType Date
RejectionType Comments
ShippingInstructionsType name
ShippingInstructionsType address
ShippingInstructionsType telephone
19 rows selected. -
Today I have found these definitions:
1.Native XML Database (NXD):
a) Defines a (logical) model for an XML document -- as opposed to the data in that document -- and stores and retrieves documents according to that model. At a minimum, the model must include elements, attributes, PCDATA, and document order. Examples of such models are the XPath data model, the XML Infoset, and the models implied by the DOM and the events in SAX 1.0.
b) Has an XML document as its fundamental unit of (logical) storage, just as a relational database has a row in a table as its fundamental unit of (logical) storage.
c) Is not required to have any particular underlying physical storage model. For example, it can be built on a relational, hierarchical, or object-oriented database, or use a proprietary storage format such as indexed, compressed files.
2.XML Enabled Database (XEDB) - A database that has an added XML mapping layer provided either by the database vendor or a third party. This mapping layer manages the storage and retrieval of XML data. Data that is mapped into the database is mapped into application specific formats and the original XML meta-data and structure may be lost. Data retrieved as XML is NOT guaranteed to have originated in XML form. Data manipulation may occur via either XML specific technologies(e.g. XPath, XSL-T, DOM or SAX) or other database technologies(e.g. SQL). The fundamental unit of storage in an XEDB is implementation dependent. The XML solutions from Oracle and Microsoft as well as many third party tools fall into this category.
3.Hybrid XML Database (HXD) - A database that can be treated as either a Native XML Database or as an XML Enabled Database depending on the requirements of the application. An example of this would be Ozone.
Which of them would you put XML DB in?If we consider the duality of the XMLType (store XML documents in CLOB's and structured storage with XML Schemas), could we say that it is an hybrid XML database?
Native->CLOB's
Enabled->structured storage
I suppose this cuestion is a bit subjective, but I would like to know your opinions.
Thanks in advance! -
Is the transformation between XML document and 2 dimensions table important?
To everyone:
I am trying to write a paper on this topic.first ,i want to ask whether the transformation between XML data and table in RDBMS is important,because xml data is suitable to transfer from a point to another,but not for storage,so when the transfer begin a program(in DB2,the program is DB2 extender)should change the data format in table into a xml document.And vice versa,the destination point receive the xml document,maybe the same program would store it in table.
so i wonder if such a program exists in the Oracle8i or later version,and the detail about how the program realizes above funciton.please tell me where can i find related paper or materials.
thanks!To everyone:
I am trying to write a paper on this topic.first ,i want to ask whether the transformation between XML data and table in RDBMS is important,because xml data is suitable to transfer from a point to another,but not for storage,so when the transfer begin a program(in DB2,the program is DB2 extender)should change the data format in table into a xml document.And vice versa,the destination point receive the xml document,maybe the same program would store it in table.
so i wonder if such a program exists in the Oracle8i or later version,and the detail about how the program realizes above funciton.please tell me where can i find related paper or materials.
thanks! That is all oracle XDK is for. You can transform query results to xml and xml back into RDBMS. Infact Oracle provides much more flexible way than a DB2 extender does. In DB2 you need to give a DAD before you get any XML. Oracle relies on the direct transformation of query results into XML and adds flexibility of XSL ontop of the data.
You can get more information on XML technology section of OTN.
Once you write the article can we get a chance to see it. -
Resubmitting the archived XML Documents?
Hi,
I just wanted to confirm whether archived XML documents can be resubmitted?
The XI message has been archived in a storage system and now its required to retrieve it in XI system.
Does XI allow this resubmitting?
Edited by: sriparna1 on Nov 16, 2009 8:11 AMHi Sriparna,
Synchronous messages occupy lot of space in the memory/database and hence they are not persisted by default.
If you want the synchronous messages to be persisted, then follow this blog:
http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417200)ID1629352550DB00149050467001567547End?blog=/pub/wlg/1629
Refer this discussion to understand the concept of persistence with respec to sync msgs.
Synchronous Messages persistence in XI
And regarding your question about "How are the successfull and erroneous synchronous messages handled while archiving",
it is very staright forward.
By default, all the succesful messages are archived by the archiving job.
The error messages are not archived.
If you want the error messages to be archived, you have to Cancel them.
After canceling, the status changes from error to cancelled. Then the archiving job will archive the cancelled messages also.
Regards,
Ravi Kanth Talagana -
Error while loading an XML document using a structured application
Hi,
I try to load an XML document using a structured application defined in the default structapps.fm
My code is shown down, extracted from the FDK API code sample.
Problem, I always have the same message :
"Cannot find the file named e:\xml\AdobeFrameMaker10\file. Make sure that the file exists. "
Where "e:\xml\AdobeFrameMaker10\" is my install directory.
So I assume that frame try to find the structapps.fm file but does not find it.
What else can it be ?
Does anyone knowns how to achieve this simple task using extendScript ?
Thanks for any comments, Pierre
function openXMLFile(myLastFile) {
var filename = myLastFile.openDlg("Choose XML file ...", "*.xml", false);
if (filename != null) {
/* Get default open properties. Return if it can’t be allocated. */
var params = GetOpenDefaultParams();
/* Set properties to open an XML document*/
/*Specify XML as file type to open*/
var i = GetPropIndex(params, Constants.FS_OpenAsType)
params[i].propVal.ival = Constants.FV_TYPE_XML;
/* Specify the XML application to be used when opening the document.*/
i = GetPropIndex(params, Constants.FS_StructuredOpenApplication)
params[i].propVal.sval = "myApp";
i = GetPropIndex(params, Constants.FS_FileIsOldVersion)
params[i].propVal.ival = Constants.FV_DoOK
i = GetPropIndex(params, Constants.FS_FontNotFoundInDoc)
params[i].propVal.ival = Constants.FV_DoOK
i = GetPropIndex(params, Constants.FS_FileIsInUse)
params[i].propVal.ival = Constants.FV_DoCancel
i = GetPropIndex(params, Constants.FS_AlertUserAboutFailure)
params[i].propVal.ival = Constants.FV_DoCancel
/*The structapps.fm file containing the specified application must have
already been read. The default structapps.fm file is read when FrameMaker is
opened so this shouldn't be a problem if the application to be used is
listed in the structapps.fm file.*/
var retParm = new PropVals()
var fileObj = Open(filename, params, retParm);
return fileObj
} else {
return null;Pierre,
Depending on the object "myLastFile", the method openDlg might not even exist (if the myLastFile object is not a File object, for instance). And I do not see any need for the myLastFile anyhow, as you are presenting a dialog to select a file to open. I recommend using the global ChooseFile( ) method instead. This will give you a filename as string in full path notation, or null when no file was selected in the dialog. I am not sure what your ExtendScript documentation states about the return value for ChooseFile, but if that differs from what I am telling you here, the documentation is wrong. So, if you replace the first lines of your code with the following it should work:
function openXMLFile ( ) {
var filename = ChooseFile ( "Choose XML file ...", "", "*.xml", Constants.FV_ChooseSelect );
While writing this, I see that Russ has already given you the same advice. Use the symbolic constant value I indicated to use the ChooseFile dialog to select a single file (it can also be used to select a directory or open a file - but you want to control the opening process yourself). Note that this method allows you to set a start directory for the dialog (second parameter). The ESTK autocompletion also gives you a fifth parameter "helplink" which is undocumented and can safely be ignored.
Good luck
Jang -
Performance issues with FDK in large XML documents
In my current project with FrameMaker 8 I'm experiencing severe performance issues with some FDK API calls.
The documents are about 3-8 MBytes in size. Fortmatted they cover 150-250 pages.
When importing such an XML document I do some extensive "post-processing" using FDK. This processing happens in Sr_EventHandler() during the SR_EVT_END_READER event. I noticed that some FDK functions calls which modify the document's structure, like F_ApiSetAttribute() or F_ApiNewElementInHierarchy(), take several seconds, for the larger documents even minutes, to complete one single function call. I tried to move some of these calls to earlier events, mostly to SR_EVT_END_ELEM. There the calls work without a delay. Unfortunately I can't rewrite the FDK client to move all the calls that are lagging to earlier events.
Does anybody have a clue why such delays happen, and possibly can make a suggestion, how to solve this issue? Thank you in advance.
PS: I already thought of splitting such a document in smaller pieces by using the FrameMaker book function. But I don't think, the structure of the documents will permit such an automatic split, and it definitely isn't an option to change the document structure (the project is about migrating documents from Interleaf to XML with the constraint of keeping the document layout identical).FP_ApplyFormatRules sounds really good--I'll give it a try on Monday. Wonder how I could miss it, as I already tried FP_Reformatting and FP_Displaying at no avail?! By the way, what is actually meant with FP_Reformatting (when I used it I assumed it would do exactly what FP_ApplyFormatRules sounds to do), or is that one another of Lynne's well-kept secrets?
Thank's for all the helpful suggestions, guys. On Friday I already had my first improvements in a test version of my client: I did some (not all necessary) structural changes using XSLT pre-processing, and processing went down from 8 hours(!) to 1 hour--Yeappie! I was also playing with the idea of writing a wrapper to F_ApiNewElementInHierarchy() which actually pastes an appropriate element created in a small flow on the reference pages at the intended insertion location. But now, with FP_ApplyFormatRules on the horizon, I'm quite confident to get even the complicated stuff under control, which cannot be handled by the XSLT pre-processing, as it is based on the actual formatting of the document at run-time and cannot be anticipated in pre-processing.
--Franz -
The size of a XML document stored in a XMLType table
Is there a way to find out (via SQL) the size of a XML document stored in a XMLType table or XMLType column (storage OR based)?
For instance in the way you could it retrieve if the XML document was stored in an XMLType column (CLOB based)
SQL> r
1 select dbms_lob.getlength(t.gegevens.getclobval()) "SIZE"
2 from hgo.hgo010_detam t
3* where rownum < 2
SIZE
2750Is there a way to find out (via SQL) the size of a XML document stored in a XMLType table or XMLType column (storage OR based)?
For instance in the way you could it retrieve if the XML document was stored in an XMLType column (CLOB based)
SQL> r
1 select dbms_lob.getlength(t.gegevens.getclobval()) "SIZE"
2 from hgo.hgo010_detam t
3* where rownum < 2
SIZE
2750
Maybe you are looking for
-
I'm using ID 5.5 on a Vista system. I've created a book file with some colored fonts and anchored gif images. Basic paragraph (body text) is black. The "Export to Kindle" mobi file displays fine on Kindle for PC and Kindle Previewer. Kindle PC alows
-
My iPod touch wont charge or turn on?
My iPod touch was not fully charged but it had some charge and then it just turned off and now it won't turn back on. I plugged my iPod touch into charge and the red battery and lightning symbol comes on but that is still there a couple of hours late
-
Hi Friends, I was created a new multiprovider which contains two InfoCubes, First infocube contains the Site & Material and second infocube contains only Material, so when i executed the query it is Showing the first cube Values in some rows, after e
-
If I'm being blocked by mozilla firefox from accessing this site. How do I turn off the block?
-
I installed the CC trial with an error window saying: Could not create the file '/Users/dranim/Library/Preferences/Adobe/After Effects/13.2/dummy'. That was the first window. Heres the second: After Effects can't continue: unexpected failure durin