How to realise? Only DOM or Classes fed by DOM? (MVC - data in xml file)
Hi @ all,
I'm new in Java, and I don't have much expirience. I have been researching and studying different methods for developing my project.
This are my results:
I decided to use the MVC pattern.
I want to have a GUI which offer to enter data, choose data and manipulate data.
I want save the data in a xml file and I want to reload the data from the xml file.
My problem is:
As I understand it, there are two different possibilities to implement this.
The first might be:
I load my Data (structured) from the xml file as a DOM (this is my Model) and manipulate the DOM Object. Delet childs, insert new childs ....
The second might be:
My model have classes with attributes and the methods to manipulate them.
The Objects are filled by the DOM with the Data from the xml file.
The Objects manipulate their Data.
The manipulated Data is stored with the aid of DOM in the xml file.
The first is better for small data. And seems to me to be the better way. But if I have a lot of data, a big xml with a lot of childs and attributes to manipulate. I think it could be complicated to implement this and I might loose the overview!
I try to explain it by these examples:
My data:
<square dim="4">
The first:
I would load the DOM and manipulate the dim attribute direct! Save! Ready!
The second in my Model a class:
class square {
private int dim;
public changedim(int dim){ ...}
Now I would create the DOM get the Attribute from square , create a Objekt of square, manipulate the attributes, get the DOM and set the changed attribute.
Has someone made experiences with this implementations?
Thanks a lot of!
Hi @ all,
I'm new in Java, and I don't have much expirience. I have been researching and studying different methods for developing my project.
This are my results:
I decided to use the MVC pattern.
I want to have a GUI which offer to enter data, choose data and manipulate data.
I want save the data in a xml file and I want to reload the data from the xml file.
My problem is:
As I understand it, there are two different possibilities to implement this.
The first might be:
I load my Data (structured) from the xml file as a DOM (this is my Model) and manipulate the DOM Object. Delet childs, insert new childs ....
The second might be:
My model have classes with attributes and the methods to manipulate them.
The Objects are filled by the DOM with the Data from the xml file.
The Objects manipulate their Data.
The manipulated Data is stored with the aid of DOM in the xml file.
The first is better for small data. And seems to me to be the better way. But if I have a lot of data, a big xml with a lot of childs and attributes to manipulate. I think it could be complicated to implement this and I might loose the overview!
I try to explain it by these examples:
My data:
<square dim="4">
The first:
I would load the DOM and manipulate the dim attribute direct! Save! Ready!
The second in my Model a class:
class square {
private int dim;
public changedim(int dim){ ...}
Now I would create the DOM get the Attribute from square , create a Objekt of square, manipulate the attributes, get the DOM and set the changed attribute.
Has someone made experiences with this implementations?
Thanks a lot of!
Similar Messages
-
Unmarshalling a DOM node to an XML file with JAXB
I'm trying to unmarshall a DOM node to an XML file using JAXB. However I keep receiving a NullPointerException. This only seems to occur when I create the DOM Node from scratch. The stack trace looks like the following:
java.lang.NullPointerException
at com.sun.xml.bind.unmarshaller.SAXUnmarshallerHandlerImpl.startElement
(SAXUnmarshallerHandlerImpl.java:87)
at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:109)
at com.sun.xml.bind.unmarshaller.DOMScanner.parse(DOMScanner.java:64)
at com.sun.xml.bind.unmarshaller.UnmarshallerImpl.unmarshal(Unmarshaller
Impl.java:149)
at Main.main(Main.java:103)(If I unmarshal an XML file into a DOM node, I can successfully marshall the DOM node out to a new XML file using JAXB without error.)
Any insight into what I am doing wrong would be greatly appreciated!
Sample code and XSD follow...
Sample Code:
import itemlistsample.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
public class Main
public static void main(String[] args)
try
JAXBContext jc = JAXBContext.newInstance( "itemlistsample" );
Unmarshaller u = jc.createUnmarshaller();
* Set up DOM Node Document Object.
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
System.out.println();
System.out.println();
System.out.println("Create a DOM Node and unmarshall to an XML file");
* Generate elements within DOM document
Element itemListElt = (Element)doc.createElement("item_list");
Element itemInfo = (Element)doc.createElement("item_info");
Element name = (Element)doc.createElement("name");
Element price = (Element)doc.createElement("price");
* 3-Ring Binder @ 4.99
name.appendChild(doc.createTextNode("3-Ring Binder"));
itemInfo.appendChild(name);
price.appendChild(doc.createTextNode("4.99"));
itemInfo.appendChild(price);
itemListElt.appendChild(itemInfo);
* Large Paper Clips @ 1.23
itemInfo = (Element)doc.createElement("item_info");
name = (Element)doc.createElement("name");
price = (Element)doc.createElement("price");
name.appendChild(doc.createTextNode("Large Paper Clips"));
itemInfo.appendChild(name);
price.appendChild(doc.createTextNode("1.23"));
itemInfo.appendChild(price);
itemListElt.appendChild(itemInfo);
doc.appendChild(itemListElt);
* Display DOM document as a sanity check
itemListElt = doc.getDocumentElement();
System.out.println(itemListElt.getTagName());
NodeList nl = itemListElt.getElementsByTagName("item_info");
traverse(" ", nl.item(0));
* Use JAXB to unmarshal the DOM document into
* an instance of the generated JAXB class for
* the root element. Stack trace occurs here!
ItemListType il = (ItemListType)u.unmarshal(doc);
* Marshal to an XML file
Marshaller m = jc.createMarshaller();
m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE );
m.marshal( il, new FileOutputStream("item_new.xml") );
catch (Exception e)
e.printStackTrace();
public static void traverse(String indent, Node n)
if (n != null)
if (n.getNodeName() != null)
System.out.println(indent + n.getNodeName());
traverse(indent + " ", n.getFirstChild());
if (n.getNodeValue() != null)
System.out.println(indent + n.getNodeValue());
traverse(indent, n.getNextSibling());
}Sample XSD:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="item_list" type="ItemListType"/>
<xsd:complexType name="ItemListType">
<xsd:sequence>
<xsd:element name="item_info" type="ItemInfoType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ItemInfoType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="price" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>Modified schema
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="item_list">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="item_info" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="item_info">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="price" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema> -
How to write data to xml file?
Hi,
I have done a project which read data from a web then write in log file.
Now i want to write data in xml file.
how to write?
i read some java and xml tutorial, quite quite difficult.
Who can give a simple example with some comments?
If you also give some tips on learning java web services, i will be very appreciated.
Thanks
Yang BinChoose Xerces2.4 to serialize the DOM object is an option.
javac XercesTest.java -classpath xmlParserAPIs.jar;xercesImpl.jar;.
java -classpath xmlParserAPIs.jar;xercesImpl.jar;. XercesTest test.xml
below is the source file: XercesTest.java
//JAXP
import javax.xml.parsers.*;
import org.w3c.dom.*;
//APACHE SERIALIZE FUNCTION
import org.apache.xml.serialize.*;
class XercesTest
public static void main(String[] args) throws Exception
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse( new File( args[0] ) );
File f = new File( "copy_of_"+ args[0] );
OutputFormat format = new OutputFormat("xml","UTF-8",true ) ;
FileOutputStream fout = new FileOutputStream( f );
XMLSerializer ser = new XMLSerializer(fout, format );
ser.serialize( doc );
hope it's helpful
land -
How to read/interpret data in xml files
Hi,
I am trying to write a program using DOM to read an xml file - that doesn't have a dtd. My aim is to get the node names and the content enclosed in the node. The xml I have is something like:
<ARTICLE>
<TITLE>
</TITLE>
<DESCRIPTION>
</DESCRIPTION>
<SYNOPSIS>
</SYNOPSIS>
<SOURCE>
<FOOT>
</FOOT>
</SOURCE>
<PARA>
</PARA>
<PARA>
</PARA>
<PARA>
</PARA>
</ARTICLE>
My java code thus far is:
public class Word2dmt {
String fileExt = "";
int fileNameLength = 0;
public void Word2dmt(){
// Default constructor
public void processFiles(){
String fileName = "";
String filePath = "/MyProjects/FOP/word2dmt/";
String[] files = null;
File dirWhereXmlFilesAre = null;
Document document;
DocumentBuilder builder = null;
try {
dirWhereXmlFilesAre = new File(filePath);
files = dirWhereXmlFilesAre.list();
} catch (IllegalArgumentException iae) {
Log.message("Caught iae: " + iae.getMessage());
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
// factory.setValidating(true);
// factory.setNamespaceAware(true);
try{
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException pce) {
// Parser with specified options can't be built
pce.printStackTrace();
for (int z = 0; z < files.length; z++){
fileName = filePath + files[z];
fileNameLength = fileName.length();
fileExt = fileName.substring(fileName.indexOf(".") + 1,
fileNameLength);
if(fileExt.equalsIgnoreCase("xml")){
try {
document = builder.parse(new File(fileName));
if(document.hasChildNodes()){
NodeList nodes = document.getChildNodes();
processNodes(nodes);
} catch (SAXParseException spe) {
// Error generated by the parser
System.out.println("\n** Parsing error" + ", line " +
} catch (SAXException sxe) {
// Error generated during parsing)
} catch (FileNotFoundException fnf) {
Log.message("The file: " + fileName + " is not found");
} catch (IOException e) {
Log.message("IOexception: " + e.getMessage());
} // Ends the main for loop on the files
public static void main(String[] args) {
Word2dmt w2dmt = new Word2dmt();
w2dmt.processFiles();
} // end main()
public void processNodes(NodeList nodes){
Node thisNode = null;
NamedNodeMap nodeMap = null;
Element curElement = null;
int numNodes = nodes.getLength();
String nodeValue = "";
String nodeName = "";
String localName = "";
String prefix = "";
for(int j = 0; j < numNodes; j++){
thisNode = (Node) nodes.item(j);
if(thisNode.hasChildNodes()){
processNodes(thisNode.getChildNodes());
} else {
nodeValue = thisNode.getNodeValue();
nodeName = thisNode.getNodeName();
Log.message("\t\t" + "nodeName is: " + nodeName);
Log.message("\t\t" + "nodeValue is: " + nodeValue);
When I try to print the node name, all I get is: "#test" except for the node ARTICLE, which happens to be the root node. My requirement is that I need the node name (TITLE, SYNOPSIS, DESCRIPTION ..etc) and be able to associate the content in other areas of my larger program. I tried almost all the methods of the class org.w3c.dom.Node, but without luck.
Any help is appreciated.
Thanks.
- SharmaWhen I try to print the node name, all I get is: "#test"I think if you look more carefully you'll see it really says "#text". That's the "name" of a text node, of which you have a lot there. Also, if a node has children then you aren't printing its name, that's why you miss most of your elements.
-
How to extract data from XML file with JavaScript
HI All
I am new to this group.
Can anybody help me regarding XML.
I want to know How to extract data from XML file with JavaScript.
And also how to use API for XML
regards
NagarajuThis is a Java forum.
JavaScript is something entirely different than Java, even though the names are similar.
Try another website with forums about JavaScript.
For example here: http://www.webdeveloper.com/forum/forumdisplay.php?s=&forumid=3 -
Hi ALL
I want to add new fields on seeded EBS page to store their values in hr_api_transaction table whoch contain information of other fields on that page which are seeded
but that table has one column which stores xml file and that xml file has all information about that page's fields
how can I store my custom fields values in that xml file ?Hi,
As Andy said, add data to an xml file is overwriting, if you mean append data to xml file, please look this article:
http://codesamplez.com/programming/linq-to-xml-tutorial, Since this issue is more related to ASP.net, you could also ask this issue in asp.net forum:
http://forums.asp.net/
Best Regards,
Jambor
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
How can i write the DOM tree to the XML File?
Asslamo ala mn etb3a Alhoda.
My problem priefly is that i can't write the DOM tree to XML file.
I write following code to give the user the ability to input the name of data base which he want to create.
If i wrote DB name,its atrributes and its values succefully to XML file ,then i'll read it succefully to RAM.
It'll be simple DBMS.
***My code***
import javax.swing.*;
import javax.xml.parsers.*;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
public class Main {
* @param args
public static void main(String[] args) {
// TODO Auto-generated method stub
String DBname;
DBname=JOptionPane.showInputDialog("Enter Your Data Base Name");
OPerations O=new OPerations();
O.creatDB(DBname);
class OPerations {
public void creatDB(String name){
//get an empty Document
DocumentBuilderFactory f; f=DocumentBuilderFactory.newInstance();
try {
builder = f.newDocumentBuilder();
Document doc= builder.newDocument();
//Build tree DOM With the root Node
Element root=doc.createElement(name);
//add the root element to thevdocument
doc.appendChild(root);
catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}Do an identity transformation to output it:TransformerFactory tf = TransformerFactory.newInstance();
Transformer tr = tf.newTransformer();
tr.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(new File(filename))));(typed without syntax check) -
How to read the data from XML file and insert into oracle DB
Hi All,
I have below require ment.
I will receive data in the XML file. then i need to read that data and insert into oracle tables. please let me know how this can be handled.
Many Thanks.Sounds a lot like this question, only with less details.
how to read data from XML variable and insert into table variable
We can only help if you provide us details to help as we cannot see what you are doing and only know what you tell us. Plenty of examples abound on the forums that cover the topics you seek as well. -
How to ignore a node while reading data from XML file
Hi All,
I have a XML file that i am reading that XML file using XMLStreamReader and then i need to create another XML file that has specific nodes(from the database).
I need to ignore nodes(with values) that are not in the database and while creating the XML file, only nodes that are it the database should be written in the new file.*
For eg.
<XML>
<Stud>
<Name>XYZ</Name>
<Roll>1</Roll>
<Class>1</Class>
</Stud>
<Stud>
<Name>ABC</Name>
<Roll>2</Roll>
<Class>1</Class>
</Stud>
</XML>
In database i have only two node :<Name> and <Roll>.
So, my new XML will be
<XML>
<Stud>
<Name>XYZ</Name>
<Roll>1</Roll>
</Stud>
<Stud>
<Name>ABC</Name>
<Roll>2</Roll>
</Stud>
</XML>Hi gborges,
Since you're new to LabVIEW, I thought I would post a few helpful links. A great way to learn some LabVIEW basics is to look over the introductions --
Three Hour LabVIEW Introduction Course
Six Hour LabVIEW Introduction Course
You might even want to think about signing up for the LabVIEW Basics I & II courses which are taught by Applications Engineers. You can always search for KnowledgeBases and, of course, you already know about our forums!
Happy coding,
Megan B.
National Instruments -
How to download internal table data into xml file?
Hi,
Experts,
I have downloaded internal table data into XLS format using GUI_DOWNLOAD Function module, But i didn't Know how to download internal table data into XML format please post some ideas/inputs on this issue.
Thank you,
Shabeer ahmed.check this
data : gd_repid type sy-repid.
GD_REPID = SY-REPID.
DATA : L_DOM TYPE REF TO IF_IXML_ELEMENT,
M_DOCUMENT TYPE REF TO IF_IXML_DOCUMENT,
G_IXML TYPE REF TO IF_IXML,
W_STRING TYPE XSTRING,
W_SIZE TYPE I,
W_RESULT TYPE I,
W_LINE TYPE STRING,
IT_XML TYPE DCXMLLINES,
S_XML LIKE LINE OF IT_XML,
W_RC LIKE SY-SUBRC.
DATA: XML TYPE DCXMLLINES.
DATA: RC TYPE SY-SUBRC,
BEGIN OF XML_TAB OCCURS 0,
D LIKE LINE OF XML,
END OF XML_TAB.
data : l_element type ref to if_ixml_element,
xml_ns_prefix_sf type string,
xml_ns_uri_sf type string.
CLASS CL_IXML DEFINITION LOAD.
G_IXML = CL_IXML=>CREATE( ).
CHECK NOT G_IXML IS INITIAL.
M_DOCUMENT = G_IXML->CREATE_DOCUMENT( ).
CHECK NOT M_DOCUMENT IS INITIAL.
CALL FUNCTION 'SDIXML_DATA_TO_DOM'
EXPORTING
NAME = 'REPAIRDATA'
DATAOBJECT = IT_FINAL_LAST1[]
IMPORTING
DATA_AS_DOM = L_DOM
CHANGING
DOCUMENT = M_DOCUMENT
EXCEPTIONS
ILLEGAL_NAME = 1
OTHERS = 2.
CHECK NOT L_DOM IS INITIAL.
W_RC = M_DOCUMENT->APPEND_CHILD( NEW_CHILD = L_DOM ).
*Start of code for Header
* namespace
t_mnr = sy-datum+4(2).
CALL FUNCTION 'IDWT_READ_MONTH_TEXT'
EXPORTING
LANGU = 'E'
MONTH = t_mnr
IMPORTING
T247 = wa_t247
concatenate sy-datum+6(2)
wa_t247-ktx
sy-datum(4) into t_var1.
concatenate sy-uzeit(2)
sy-uzeit+2(2)
sy-uzeit+4(2) into t_var2.
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
l_element = m_document->get_root_element( ).
xml_ns_prefix_sf = 'TIMESTAMP'.
concatenate t_var1 t_var2 into xml_ns_uri_sf separated by space.
clear : t_var1,
t_var2,
t_mnr,
wa_t247.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
xml_ns_prefix_sf = 'FILECREATOR'.
xml_ns_uri_sf = 'SAP'.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
xml_ns_prefix_sf = 'CLAIMGROUP'.
xml_ns_uri_sf = '1'.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
clear : xml_ns_prefix_sf,
xml_ns_uri_sf.
xml_ns_prefix_sf = 'CLAIMTYPES'.
xml_ns_uri_sf = 'W'.
l_element->set_attribute( name = xml_ns_prefix_sf
namespace = ' '
value = xml_ns_uri_sf ).
*End of Code for Header
CALL FUNCTION 'SDIXML_DOM_TO_XML'
EXPORTING
DOCUMENT = M_DOCUMENT
IMPORTING
XML_AS_STRING = W_STRING
SIZE = W_SIZE
TABLES
XML_AS_TABLE = IT_XML
EXCEPTIONS
NO_DOCUMENT = 1
OTHERS = 2.
LOOP AT IT_XML INTO XML_TAB-D.
APPEND XML_TAB.
ENDLOOP.
*Start of Code for File name
concatenate p_file
'\R'
'000_119481'
sy-datum+6(2) sy-datum+4(2) sy-datum+2(2)
sy-uzeit(2) sy-uzeit+2(2) sy-uzeit(2) '.xml' into p_file.
*End of Code for File name
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_SIZE
FILENAME = p_file
FILETYPE = 'BIN'
TABLES
DATA_TAB = XML_TAB
EXCEPTIONS
OTHERS = 10.
IF SY-SUBRC = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. -
How to covvert internal table data to XML file?
Hi,
Do u have material on ABAP with XML?
and how to convert internal table to XML?
Thanks and Regards,
ArpitaCheck below links:
XML DOM Processing in ABAP part II - Convert an XML file into an ABAP table using SAP DOM Approach.
Re: include a structure in a TYPES declaration
Thanks and Regards, -
How to save an n-ary tree of nodes to and from an xml file
Hello,
I am trying to represent a n-ary tree of nodes in xml.
More accurately, I am trying to save/instantiate a
tree of nodes to-from an xml file.
How do I represent the parent-child relationships?
Java: (simplified)
class Node {
Arraylist childNodes;
Node parent;
XML:
From what I have been learning about XML,
DTD:
<?xml version="1.0" ?>
<!DOCTYPE acd
<!ELEMENT Node (childNodes, parent)>
<!ATTLIST Node id ID #REQUIRED>
<!ELEMENT childNodes (Node*)>
<!ELEMENT parent (Node?)>
]>
Qs:
1) How do I represent the relationships? What would
normally be a reference in Java, how do I represent in
XML?
2) Do I use ID, IDREF? I have been trying to find some
examples to learn how. i.e. Does the IDREF, ID
automatically become an in-memory reference (or pointer)?
3) Is it preferable to use XML schema?
thanks,
Anil Philip
Olathe, KS
for good news go to
http://members.tripod.com/goodnewsforyou/goodnews.htmlI downloaded XML Spy and used it to correct my earlier schema.
Qs:
In the instance document xml file;
1) How would one display the parent node?
2) If a child has a reference to a parent node as in the schema below, how can one know that the references are the same?
i.e. when the parent node is first declared and when it is referred to by the child.
Perhaps this raises a larger question - how does XML handle recursive references?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://juwo.com/acd" xmlns="http://juwo.com/acd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:annotation>
<xs:documentation>ACD nodes. juwo LLC 2005</xs:documentation>
</xs:annotation>
<xs:complexType name="Node">
<xs:sequence>
<xs:element name="parent" type="Node" minOccurs="0"/>
<!-- Node[] childNodes -->
<xs:element name="childNodes" type="ListOfNodes"/>
<!-- String data -->
<xs:element name="data" type="xs:string"/>
</xs:sequence>
<!-- Node parent -->
</xs:complexType>
<xs:complexType name="ListOfNodes">
<xs:sequence>
<xs:element name="i" type="Node" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema> -
Calling java class from PLSQL that returns date/time a file was saved
Does anybody know, is there a java class I can compile into Oracle DB, and call from PLSQL that returns me the date/time a file was saved.
As far as I'm aware this cannot be achieved using UTL_FILE.
Please advise
Thanks
WarrenI found this thread from before that might be helpful
how to connect to UNIX OS from oracle stored procedure -
How to retrieve data from xml file into obiee reports
Hi all,
I've got a situation here. A xml file is stored as blob in oracle database table. Now i need to retrieve data/info from that xml file into obiee reports. How am i supposed to proceed with this ?I will go for a table function:
http://gerardnico.com/wiki/database/oracle/table_function
In two words, you can create a function that behave as a table. Then you create a function to pick up your xml, you parse it and you send back the rows.
I know that Oracle has also a library for XML files but I never use it until now.
Success
Nico -
How can I query data from XML file stored as a CLOB ?
Hi folks,
please see below sample of XML file, which is stored in "os_import_docs", column "document" as CLOB.
I would like to query this XML file using some SQL select.
How can I query data form below XML?
<?xml version="1.0" encoding="UTF-8"?>
<etd>
<header>
<AR>000000000</AR>
<AW>0</AW>
<CT>S</CT>
<CU>H</CU>
<CZ>SS48</CZ>
<BU>4</BU>
<CH>0032</CH>
<CK>2012-11-01</CK>
<CL>21:18</CL>
<CW>225</CW>
<CX>0</CX>
<CF>SS-CZL18</CF>
<DV>2</DV>
</header>
<account_group id="234">
<account id="234">
<invoice id="000742024">
<da>
<AR>000742024</AR>
<AW>0</AW>
<CT>D</CT>
<CU>A</CU>
<CH>0032</CH>
<BY>31-10-2012</BY>
<CA>25-10-2012</CA>
<AB>234</AB>
<AA>234</AA>
<BS>88754515</BS>
<AD>Mike Tyson</AD>
<AC>Mike Tyson</AC>
<AZ>CZ6521232465</AZ>
<AE/>
<CG>A</CG>
<AL>A</AL>
<BZ>.</BZ>
<AH>Some street</AH>
<AI/>
<AF>Some city</AF>
<AK>Kraj</AK>
<AG>CZ</AG>
<AJ>885 21</AJ>
<CR>21-11-2012</CR>
<AY>602718709</AY>
<AV>800184965</AV>
<AP/>
<AO/>
<AQ/>
<AN/>
</da>
<da>
<AR>000742024</AR>
<AW>0</AW>
<CT>D</CT>
<CU>A</CU>
<CH>0032</CH>
<BY>31-10-2012</BY>
<CA>25-10-2012</CA>
<AB>234</AB>
<AA>234</AA>
<BS>88754515</BS>
<AD>Mike Tyson</AD>
<AC>Mike Tyson</AC>
<AZ>CZ6521232465</AZ>
<AE/>
<CG>A</CG>
<AL>L</AL>
<BZ>Mike Tyson</BZ>
<AH>Some street</AH>
<AI/>
<AF>Some city</AF>
<AK>Kraj</AK>
<AG>CZ</AG>
<AJ>885 21</AJ>
<CR>21-11-2012</CR>
<AY/>
<AV>800184965</AV>
<AP/>
<AO/>
<AQ/>
<AN/>
</da>
<detaildc CH="0032" AB="234" BS="11888954" BB="32" BA="CZ" AT="" CI="7077329000002340342" AU="" DU="1Z48395" CB="CZK">
<dc>
<AW>0</AW>
<CT>D</CT>
<CU>C</CU>
<BY>31-10-2012</BY>
<CA>25-10-2012</CA>
<CV>8151</CV>
<BT>12111</BT>
<CJ>1</CJ>
<AM>0</AM>
<DR>PC</DR>
<DS/>
<DO>25-10-2012</DO>
<DQ>18:42</DQ>
<CE>1</CE>
<BH>8151</BH>
<CY>8151 SHELL MALKOVICE P</CY>
<DP>049336</DP>
<DT/>
<BQ/>
<BR>500000</BR>
<CN>30</CN>
<CM>030</CM>
<BO>160,00</BO>
<BF>38,900</BF>
<BC>6224,00</BC>
<BI>32,417</BI>
<CD>B</CD>
<BG>0,600</BG>
<BK>31,817</BK>
<BJ>0,000</BJ>
<DI>8</DI>
<BP>20,00%</BP>
<CC>CZK</CC>
<BM>5090,67</BM>
<BN>1018,13</BN>
<BL>6108,80</BL>
<BD>5090,67</BD>
<BE>1018,13</BE>
<DW>6108,80</DW>
<CO>Nafta</CO>
</dc>
</detaildc>
<dt>
<AR>000742024</AR>
<AW>0</AW>
<CT>D</CT>
<CU>T</CU>
<CH>0032</CH>
<BY>31-10-2012</BY>
<CA>25-10-2012</CA>
<AB>234</AB>
<AA>234</AA>
<BS>11888954</BS>
<BB/>
<BA>CZ</BA>
<DG>1</DG>
<CN>30</CN>
<CM>030</CM>
<DF>160,00</DF>
<DH>litr</DH>
<DJ>20,00%</DJ>
<DD>5090,67</DD>
<DE>1018,13</DE>
<DC>6108,80</DC>
<DB>CZK</DB>
<DA>P</DA>
<AX/>
<CQ/>
<CP/>
</dt>
<dt>
<AR>000742024</AR>
<AW>0</AW>
<CT>D</CT>
<CU>T</CU>
<CH>0032</CH>
<BY>31-10-2012</BY>
<CA>25-10-2012</CA>
<AB>234</AB>
<AA>234</AA>
<BS>11888954</BS>
<BB/>
<BA>CZ</BA>
<DG>2</DG>
<CN/>
<CM/>
<DF>160,00</DF>
<DH>litr</DH>
<DJ/>
<DD>5090,67</DD>
<DE>1018,13</DE>
<DC>6108,80</DC>
<DB>CZK</DB>
<DA/>
<AX/>
<CQ/>
<CP/>
</dt>
<dt>
<AR>000742024</AR>
<AW>0</AW>
<CT>D</CT>
<CU>T</CU>
<CH>0032</CH>
<BY>31-10-2012</BY>
<CA>25-10-2012</CA>
<AB>234</AB>
<AA>234</AA>
<BS>11888954</BS>
<BB/>
<BA>CZ</BA>
<DG>19</DG>
<CN/>
<CM/>
<DF/>
<DH/>
<DJ/>
<DD>5090,67</DD>
<DE>1018,13</DE>
<DC>6108,80</DC>
<DB>CZK</DB>
<DA/>
<AX/>
<CQ/>
<CP/>
</dt>
<dt>
<AR>000742024</AR>
<AW>0</AW>
<CT>D</CT>
<CU>T</CU>
<CH>0032</CH>
<BY>31-10-2012</BY>
<CA>25-10-2012</CA>
<AB>234</AB>
<AA>234</AA>
<BS>11888954</BS>
<BB/>
<BA>CZ</BA>
<DG>8</DG>
<CN/>
<CM/>
<DF/>
<DH/>
<DJ/>
<DD>5090,67</DD>
<DE>1018,13</DE>
<DC>6108,80</DC>
<DB>CZK</DB>
<DA/>
<AX/>
<CQ/>
<CP/>
</dt>
</invoice>
</account>
</account_group>
<footer>
<AR>999999999</AR>
<AW>0</AW>
<CT>S</CT>
<CU>T</CU>
<CZ>SS48</CZ>
<BU>4</BU>
<CH>0032</CH>
<CK>2012-11-01</CK>
<CL>23:04</CL>
<CW>225</CW>
<BX>1</BX>
<CS>7</CS>
<BW>0000000000000610880</BW>
</footer>
</etd>sample - not working:
select x.*
from os_import_docs d
,XMLTABLE('/etd/header'
PASSING httpuritype(d.document).getXML()
COLUMNS
response_status varchar2(50) PATH 'AR'
) x
where d.object_id = 2587058
and rownum = 1;
ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 6196, maximum: 4000)Many thanks,
TomasHello,
many thanks for the reply. Your examples are very usefull for me.
To answer your questions.
An XML structure:
/etd
/header - repeat in each row in output
/account_group/account
/invoice
/da - repeat for each details under "selected "invoice
/detaildc/dc - the lowest level
/detaildn/dn - the lowest level
/dt - repeat for each details under "selected "invoice
/footer - repeat in each row in outputI would like to to have a 1 row for each "record" in /detaildc section and include related nodes at higher levels.
Please see below XML file, which is simplified file of example in first post, but includes a complete xml structure which needs to be queried in db.
<?xml version="1.0" encoding="UTF-8"?>
<etd>
<header>
<AR>000000000</AR>
<CK>2012-10-31</CK>
<CF>SS-CZL19</CF>
</header>
<account_group id="234">
<account id="234">
<invoice id="EI08P4000">
<da>
<AR>EI08P4000</AR>
<AD>Mickey Mouse</AD>
</da>
<detaildc DU="1Z56655" CB="EUR">
<dc>
<DO>16-10-2012</DO>
<CY>ASFINAG POST_MAUT</CY>
<BM>1940,60</BM>
<CO>Dalnicni znamka</CO>
</dc>
</detaildc>
<detaildc DU="2Z55050" CB="EUR">
<dc>
<DO>17-10-2012</DO>
<CY>ASFINAG POST_MAUT</CY>
<BM>1328,10</BM>
<CO>Dalnicni znamka</CO>
</dc>
</detaildc>
<detaildc DU="2Z90001" CB="EUR">
<dc>
<DO>27-10-2012</DO>
<CY>ASFINAG POST_MAUT</CY>
<BM>185,10</BM>
<CO>Poplatek</CO>
</dc>
</detaildc>
<dt>
<AR>EI08P4000</AR>
<DG>8</DG>
</dt>
</invoice>
</account>
<account id="234">
<invoice id="EI13T7777">
<da>
<AR>EI13T7777</AR>
<AD>Mickey Mouse</AD>
</da>
<detaildc DU="1Z48302" CB="EUR">
<dc>
<DO>26-10-2012</DO>
<CY>SANEF 07706 A 07704</CY>
<BM>232,10</BM>
<CO>Dalnicni poplatek</CO>
</dc>
</detaildc>
<detaildc DU="1Z48302" CB="EUR">
<dc>
<DO>20-10-2012</DO>
<CY>TEST A 07704</CY>
<BM>30,10</BM>
<CO>Poplatek</CO>
</dc>
</detaildc>
<dt>
<AR>EI13T7777</AR>
<DG>8</DG>
</dt>
</invoice>
</account>
<account id="234">
<invoice id="EI327744">
<da>
<AR>EI327744</AR>
<AD>Mickey Mouse</AD>
</da>
<detaildn CI="707732 00000234" >
<dn>
<BY>30-10-2012</BY>
<BM>8,10</BM>
</dn>
</detaildn>
<detaildn CI="707732 00000234" >
<dn>
<BY>30-10-2012</BY>
<BM>399,50</BM>
</dn>
</detaildn>
<dt>
<AR>EI327744</AR>
</dt>
</invoice>
</account>
<account id="234">
<invoice id="EI349515">
<da>
<AR>EI349515</AR>
<AD>Mickey Mouse</AD>
</da>
<detaildc DU="1Z56514" CB="EUR">
<dc>
<DO>29-10-2012</DO>
<CY>ALLAMI AUTOPALYAKEZE</CY>
<BM>1240,60</BM>
<CO>Dalnicni znamka</CO>
</dc>
</detaildc>
<detaildc DU="1Z56515" CB="EUR">
<dc>
<DO>19-10-2012</DO>
<CY>ASFINAG POST_MAUT</CY>
<BM>7428,10</BM>
<CO>Dalnicni znamka</CO>
</dc>
</detaildc>
<detaildc DU="1Z56515" CB="EUR">
<dc>
<DO>12-10-2012</DO>
<CY>UK</CY>
<BM>954,10</BM>
<CO>Poplatek</CO>
</dc>
</detaildc>
<dt>
<AR>EI349515</AR>
<DG>8</DG>
</dt>
</invoice>
</account>
</account_group>
<footer>
<CZ>SS47</CZ>
<BU>4</BU>
<CH>0032</CH>
<CK>2012-10-31</CK>
<CL>01:25</CL>
</footer>
</etd>Expected output
AR CK CF AR4 AD DU CB DO CY BM CO AR5 DG CI BY BM6 CZ BU CH CK7 CL
0 41213 SS-CZL19 EI08P4000 Mickey Mouse 1Z56655 EUR 16-10-2012 ASFINAG POST_MAUT 1940,60 Dalnicni znamka EI08P4000 8 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI08P4000 Mickey Mouse 2Z55050 EUR 17-10-2012 ASFINAG POST_MAUT 1328,10 Dalnicni znamka EI08P4000 8 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI08P4000 Mickey Mouse 2Z90001 EUR 27-10-2012 ASFINAG POST_MAUT 185,10 Poplatek EI08P4000 8 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI13T7777 Mickey Mouse 1Z48302 EUR 26-10-2012 SANEF 07706 A 07704 232,10 Dalnicni poplatek EI13T7777 8 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI13T7777 Mickey Mouse 1Z48302 EUR 20-10-2012 TEST A 07704 30,10 Poplatek EI13T7777 8 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI327744 Mickey Mouse EI327744 707732 00000234 30-10-2012 8,10 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI327744 Mickey Mouse EI327744 707732 00000234 30-10-2012 399,50 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI349515 Mickey Mouse 1Z56514 EUR 29-10-2012 ALLAMI AUTOPALYAKEZE 1240,60 Dalnicni znamka EI349515 8 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI349515 Mickey Mouse 1Z56515 EUR 19-10-2012 ASFINAG POST_MAUT 7428,10 Dalnicni znamka EI349515 8 SS47 4 32 41213 01:25
0 41213 SS-CZL19 EI349515 Mickey Mouse 1Z56515 EUR 12-10-2012 UK 954,10 Poplatek EI349515 8 SS47 4 32 41213 01:25
Maybe you are looking for
-
Oracle 8.1.5 to oracle8.1.6 upgradation
Hi I am working paralelly on both Solaris2.7 and win NT4.0 The details are as follows 1. Liscenced versions of Oracle8.1.5 have been installed on both the systems In order to upgrade I tried searching for the script u0801050.sql in both the systems u
-
APP -f110 Payment medium creation
Hi Gurus, We are having problem with payment medium in APP. It's being generated at proposal, payment run and Print out. Every time we run this individual step the system won't let us run it without selecting payment medium. As a result there are thr
-
Is it possible to CREATE an XML data with Smart Forms??
Hello at all, i have an Smart Form Formular, which contains all information about a customer. My question is, if i want to send this Formular to another System, can I send this as a XML File or something else??? I have no idea, how i can send my smar
-
Crop Tool Malfunctioning! How do I fix it?
My crop tool no longer works. I can choose an area I want to crop, then when I go to "Image/Crop" it only crops a single pixel. I have been having to select the area with the rectangular marquee tool, copy & paste it into another layer, delete the ba
-
Client executed F.5E in Production run and told us no entries are
Hi All, Issue: Client executed F.5E in Production run and told us no entries are generated. When they/i run 1.F.5D no error. 2.Initially when they run F.5E error is No postings can be created for company code 1000 Errors occur when determinig adjustm