How to deserialize xml with structure of abitrary nested layers of base class?

let say i want to represent arithmetic expression using xml:
<?xml version="1.0" encoding="utf-8" ?>
<expr>
<add>
<num>10</num>
<num>20</num>
</add>
</expr>
and here is my classes to represent this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
public abstract class Evaluable
public abstract int Eval();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace Test
[Serializable]
[XmlRoot("expr")]
public class Expr
[XmlElement]
public Evaluable Evaluable { get; set; }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace Test
[Serializable]
[XmlRoot("add")]
[XmlType("add")]
public class Add : Evaluable
[XmlElement]
public List<Evaluable> Elems { get; set; }
public override int Eval()
return Elems.Select(e => e.Eval()).Sum();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace Test
[Serializable]
[XmlRoot("num")]
[XmlType("num")]
public class Num : Evaluable
[XmlText]
public int Val { get; set; }
public override int Eval()
return Val;
but it doesn't work, and it's reasonable, since Serializer doesn't know any thing about the subclass. but how to make it work?
here is my deserialization code:
var serializer = new XmlSerializer(typeof(Expr), new[] { typeof(Add), typeof(Num) });
Expr expr = null;
using (var file = new StreamReader("expr.xml"))
expr = serializer.Deserialize(file) as Expr;

I think what you want is to set the XmlElement attribute on the container (Elems).
It can be done if the deserializer can be made aware of all the potential subclasses of the base class.  It's ok to put multiple XmlElement attributes on the container to let the deserializer know about the various subclasses it can deserialize.
I don't think there's a way to tell the XmlSerializer externally about new types.  I could be wrong.  [If someone shows me how to do that, I'd sure appreciate it!]   [WORKAROUND:  A potential workaround
is to create a class that contains all the potential children including the class itself and serialize that.  Seems a little like cheating.]
Here is a complete example:
[Serializable]
public class Foo
[XmlAttribute( "name" )]
public string name;
[XmlElement( "Foo", Type = typeof( Foo ) )]
[XmlElement( "Bar", Type = typeof( Bar ) )]
public List<Foo> children = new List<Foo>();
public void Dump( int level )
ShowProperties( level );
foreach( var f in children ) {
f.Dump( level + 1 );
protected virtual void ShowProperties( int level )
Console.WriteLine( "{0}{1}", new string(' ', level * 4 ), name );
[Serializable]
public class Bar : Foo
public string stuff;
protected override void ShowProperties( int level )
base.ShowProperties( level );
Console.WriteLine( "{0}{1}", new string(' ', level * 4 ), stuff );
class Program
static void Main( string[] args )
// <Foo name="A">
// <Bar name="B">
// <Foo name="D" />
// <stuff>B's Stuff</stuff>
// </Bar>
// <Bar name="C">
// <stuff>C's Stuff</stuff>
// </Bar>
// </Foo>
// A
// B
// B's Stuff
// D
// C
// C's Stuff
Foo a = new Foo() { name = "A" };
Bar b = new Bar() { name = "B", stuff="B's Stuff" };
Bar c = new Bar() { name = "C", stuff="C's Stuff" };
Foo d = new Foo() { name = "D" };
a.children.Add( b );
a.children.Add( c );
b.children.Add( d );
XmlSerializer xs = new XmlSerializer( typeof( Foo ) );
// There:
XmlSerializerNamespaces ns = new XmlSerializerNamespaces( new[] { XmlQualifiedName.Empty } );
StringBuilder sb = new StringBuilder();
using( XmlWriter xw = XmlWriter.Create( sb, new XmlWriterSettings() {
OmitXmlDeclaration = true,
Indent = true
xs.Serialize( xw, a, ns );
Console.WriteLine( sb.ToString() );
// And Back Again:
using( StringReader sr = new StringReader( sb.ToString() ) )
Foo root = (Foo)xs.Deserialize( sr );
root.Dump( 0 );

Similar Messages

  • How to write XML with attributes to a table in Oracle?

    I tried to find solutions over the internet. Some of the stuff I looked at:https://forums.oracle.com/thread/2182669 http://www.club-oracle.com/forums/how-to-insert-data-from-xml-to-table-t2845/
    In all these cases, the solution considers XML structure with only nodes and child nodes but not attributes. In fact, one of the solutions suggests transforming the XML into a canonical form with only nodes w/o attributes.
    This is a sample of xml structure I am working with:
    Sample XML
    <rep type="P" title="P List"> <as> <a id="3" /> <a id="4" /> </as> </rep>
    I am working with oracle client 11.2 and SQL developer
    My question is: how to write XML data into a table with attributes also as column values, beside the nodes?

    My question is: how to write XML data into a table with attributes also as column values, beside the nodes
    The question you should be asking is : "how do I access attributes in the XPath language?"
    and the answer to that is easily found in any XPath tutorial you may find over the Internet, it is not related to Oracle in particular.
    Short answer : you use an "attribute::" axis before the attribute name, or more commonly a "@", e.g. @type, @id etc.
    Using the method described in the first link, something like this will extract the root attributes :
    SELECT x.*
    FROM XMLTable(
           '/rep'
           passing <xmltype variable/column goes here>
           columns type  varchar2(1)  path '@type'
                 , title varchar2(30) path '@title'
    ) x ;
    For deeper levels, use additional XMLTable calls as described in the mentioned post.

  • How to read  xml with deep  structure into intarnal table.

    Hi,
    Could you pls any body provide xslt code for deep structure  convert into internal table.
    sample xml file:
    - <ns0:CREATIONOFCONTRACT xmlns:ns0="http://BPCreationXSD.CreationOfContract">
    - <CREATIONOFCONTRACTDATA>
      <RequestType>L0011</RequestType>
      <ApplicationId>AN-12</ApplicationId>
      <LoanId>QO-22</LoanId>
    - <Borrowerguarantorinfo>
      <Borrowerbpno>101020</Borrowerbpno>
      <Co-borrower1BPNo>101021</Co-borrower1BPNo>
      <Co-borrower2BPNo>101022</Co-borrower2BPNo>
      <Guarantor1BPNo>101023</Guarantor1BPNo>
      <Guarantor2BPNo>101024</Guarantor2BPNo>
      <Branch>New Delhi</Branch>
      </Borrowerguarantorinfo>
    - <Loaninfo>
      <Applicationtype>Fresh</Applicationtype>
      <Purposeofloan>Home Purchase</Purposeofloan>
      <Securedunsecuredflag>Secured</Securedunsecuredflag>
      <Loantype>HL with MRTA</Loantype>
      <Loancurrency>INR</Loancurrency>
      <Loanproduct>MaxiHome Loan Package</Loanproduct>
      <Loanscheme>MaxiHome ZEC</Loanscheme>
      <Loanamount>1500000.00</Loanamount>
      <Loantenure>60</Loantenure>
      <Tiered>No</Tiered>
      </Loaninfo>
      <Periodfrom>01/07/2009</Periodfrom>
      <Periodto>16/09/2019</Periodto>
      <RateType>Fixed</RateType>
      <Ratecode>10.25</Ratecode>
      </CREATIONOFCONTRACTDATA>
      </ns0:CREATIONOFCONTRACT>

    Hi Ramesh,
    Thanks for the info,but I found lot of tables unfortunately I am not getting the value for radio buttons. Also I found a FM FIELD_SELECTION_CUSTOMIZE , IMPORT_DYNPRO etc which will call that screen based on profile but it will not store data any where. I found several tables like TCATS, TFAWC, TFAWF, TFAWT etc.But I am not getting the value for raduio buttons.
    Thanks & Regards,
    Nagaraj Kalbavi

  • How to Parse XML with SAX and Retrieving the Information?

    Hiya!
    I have written this code in one of my classes:
    /**Parse XML File**/
              SAXParserFactory factory = SAXParserFactory.newInstance();
              GameContentHandler gameCH = new GameContentHandler();
              try
                   SAXParser saxParser = factory.newSAXParser();
                   saxParser.parse(recentFiles[0], gameCH);
              catch(javax.xml.parsers.ParserConfigurationException e)
                   e.printStackTrace();
              catch(java.io.IOException e)
                   e.printStackTrace();
              catch(org.xml.sax.SAXException e)
                   e.printStackTrace();
              /**Parse XML File**/
              games = gameCH.getGames();And here is the content handler:
    import java.util.ArrayList;
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    class GameContentHandler extends DefaultHandler
         private ArrayList<Game> games = new ArrayList<Game>();
         public void startDocument()
              System.out.println("Start document.");
         public void endDocument()
              System.out.println("End document.");
         public void startElement(String namespaceURI, String localName, String qualifiedName, Attributes atts) throws SAXException
         public void endElement(String namespaceURI, String localName, String qualifiedName) throws SAXException
         public void characters(char[] ch, int start, int length) throws SAXException
              /**for (int i = start; i < start+length; i++)
                   System.out.print(ch);
         public ArrayList<Game> getGames()
              return games;
    }And here is the xml i am trying to parse:<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <Database>
         <Name></Name>
         <Description></Description>
         <CurrentGameID></CurrentGameID>
         <Game>
              <gameID></gameID>
              <name></name>
              <publisher></publisher>
              <platform></platform>
              <type></type>
              <subtype></subtype>
              <genre></genre>
              <serial></serial>
              <prodReg></prodReg>
              <expantionFor></expantionFor>
              <relYear></relYear>
              <expantion></expantion>
              <picPath></picPath>
              <notes></notes>
              <discType></discType>
              <owner></owner>
              <location></location>
              <borrower></borrower>
              <numDiscs></numDiscs>
              <discSize></discSize>
              <locFrom></locFrom>
              <locTo></locTo>
              <onLoan></onLoan>
              <borrowed></borrowed>
              <manual></manual>
              <update></update>
              <mods></mods>
              <guide></guide>
              <walkthrough></walkthrough>
              <cheats></cheats>
              <savegame></savegame>
              <completed></completed>
         </Game>
    </Database>I have been trying for ages and just can't get the content handler class to extract a gameID and instantiate a Game to add to my ArrayList! How do I extract the information from my file?
    I have tried so many things in the startElement() method that I can't actually remember what I've tried and what I haven't! If you need to know, the Game class instantiates with asnew Game(int gameID)and the rest of the variables are public.
    Please help someone...                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    OK, how's this?
    public void startElement(String namespaceURI, String localName, String qualifiedName, Attributes atts) throws SAXException
              current = "";
         public void endElement(String namespaceURI, String localName, String qualifiedName) throws SAXException
              try
                   if(qualifiedName.equals("Game") || qualifiedName.equals("Database"))
                        {return;}
                   else if(qualifiedName.equals("gameID"))
                        {games.add(new Game(Integer.parseInt(current)));}
                   else if(qualifiedName.equals("name"))
                        {games.get(games.size()-1).name = current;}
                   else if(qualifiedName.equals("publisher"))
                        {games.get(games.size()-1).publisher = current;}
                   etc...
                   else
                        {System.out.println("ERROR - Qualified Name found in xml that does not exist as databse field: " + qualifiedName);}
              catch (Exception e) {} //Ignore
         public void characters(char[] ch, int start, int length) throws SAXException
              current += new String(ch, start, length);
         }

  • How to load xml with large base64 element using sqlldr

    Hi,
    I am trying to load xml data onto Oracle 10gR2. I want to use standard sqlldr tool if possible.
    1) I have registered my schema with succes:
    - Put the 6kbytes schema into a table
    - and
    DECLARE
    schema_txt CLOB;
    BEGIN
    SELECT text INTO schema_txt FROM schemas;
    DBMS_XMLSCHEMA.registerschema ('uddkort.xsd', schema_txt);
    END;
    - Succes: I can create table like:
    CREATE TABLE XmlTest OF XMLTYPE
    XMLSCHEMA "uddkort.xsd"
    ELEMENT "profil"
    - USER_XML_TABLES shows:
    TABLE_NAME,XMLSCHEMA,SCHEMA_OWNER,ELEMENT_NAME,STORAGE_TYPE
    "XMLTEST","uddkort.xsd","THISE","profil","OBJECT-RELATIONAL"
    2) How can I load XML data into this?
    - One element of the schema is <xs:element name="billede" type="xs:base64Binary" minOccurs="0"/>
    - This field in data can be 10kbytes or more
    I have tried many control files - searching the net, but no luck so far.
    Any suggestions?
    /Claus, DK

    - One element of the schema is <xs:element name="billede" type="xs:base64Binary" minOccurs="0"/>
    - This field in data can be 10kbytes or moreThe default mapping in Oracle for this type is RAW(2000), so not sufficient to hold 10kB+ of data.
    You'll have to annotate the schema in order to specify a mapping to BLOB datatype.
    Something along those lines :
    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb">
    <xs:element name="image" xdb:defaultTable="IMAGES_TABLE">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="name" type="xs:string"/>
          <xs:element name="content" type="xs:base64Binary" xdb:SQLType="BLOB"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    </xs:schema>http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14259/xdb05sto.htm#sthref831
    Then :
    SQL> begin
      2   dbms_xmlschema.registerSchema(
      3   schemaURL => 'image.xsd',
      4   schemaDoc => '<?xml version="1.0"?>
      5  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb">
      6  <xs:element name="image" xdb:defaultTable="IMAGES_TABLE">
      7    <xs:complexType>
      8      <xs:sequence>
      9        <xs:element name="name" type="xs:string"/>
    10        <xs:element name="content" type="xs:base64Binary" xdb:SQLType="BLOB"/>
    11      </xs:sequence>
    12    </xs:complexType>
    13  </xs:element>
    14  </xs:schema>',
    15   local => true,
    16   genTypes => true,
    17   genTables => true,
    18   enableHierarchy => dbms_xmlschema.ENABLE_HIERARCHY_NONE
    19   );
    20  end;
    21  /
    PL/SQL procedure successfully completed
    SQL> insert into images_table
      2  values(
      3    xmltype(bfilename('TEST_DIR', 'sample-b64.xml'), nls_charset_id('AL32UTF8'))
      4  );
    1 row inserted
    where "sample-b64.xml" looks like :
    <?xml version="1.0" encoding="UTF-8"?>
    <image>
    <name>Collines.jpg</name>
    <content>/9j/4AAQSkZJRgABAgEBLAEsAAD/7QlMUGhvdG9zaG9wIDMuMAA4QklNA+0KUmVzb2x1dGlvbgAA
    AAAQASwAAAABAAEBLAAAAAEAAThCSU0EDRhGWCBHbG9iYWwgTGlnaHRpbmcgQW5nbGUAAAAABAAA
    AHg4QklNBBkSRlggR2xvYmFsIEFsdGl0dWRlAAAAAAQAAAAeOEJJTQPzC1ByaW50IEZsYWdzAAAA
    O9r8FHXdH4LDSSUHoImAmcIcQPwWAkkh3ogKI404WGkkkO8Po/EpmmCYWEkkru7z/FJg9sRqsFJJ
    XR3iPZMJN1HmsFJJXT6u+3UQdJUJj7lhpJKHV32dh96i3Qx8lhJJK7u9w4jw7p+SCsBJJDukQ7Tu
    VM6Ln0klHo7rjEeak0rASST0f//Z</content>
    </image>BTW, open question to everyone...
    XMLTable or XMLQuery don't seem to work to extract the data as BLOB :
    SQL> select x.image
      2  from images_table t
      3     , xmltable('/image' passing t.object_value
      4         columns image blob path 'content'
      5       ) x
      6  ;
    ERROR:
    ORA-01486: size of array element is too large
    no rows selectedhowever this is OK :
    SQL> select extractvalue(t.object_value, '/image/content') from images_table t;
    EXTRACTVALUE(T.OBJECT_VALUE,'/IMAGE/CONTENT')
    FFD8FFE000104A46494600010201012C012C0000FFED094C50686F746F73686F7020332E30003842
    494D03ED0A5265736F6C7574696F6E0000000010012C000000010001012C0000000100013842494DIs there a known restriction when dealing with LOB types?
    Edited by: odie_63 on 17 nov. 2011 19:27

  • How to import xml with data?

    Excel 2013
    i got an XML file generated by the GPinventory tool. when i import it into Excel, i only get the headers.
    how can i import the data as well?

    Hi,
    As far as I know, the GPinventory tool Supported Operating System :Windows 2000, Windows Server 2003, Windows XP, I suppose it generated XML file with Excel 2003 schema, but Excel 2013 have a new XML schema. This issue usually caused by the XML scheme.
    Please create a Excel 2013 schema XML file
    to test with Excel 2013, if the file could be import well. We'd better check the generated XML file.
    As a workaround, we'd better save the results as
    a tab-delimited text file and then import to Excel 2013.
    If this issue still exists, please upload the XML file through OneDrive. I want to test it.
    Regards,
    George Zhao
    Forum Support
    Come back and mark the replies as answers if they help and unmark them if they provide no help. If you have any feedback on our support, please click "[email protected]"

  • How to extract  XML with namespace?

    Hi all,
    Below is the XML i have :
    <?xml version="1.0" encoding="UTF-8" ?>
    - <Transaction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.test.com/Support/Services/test1/2012" xsi:schemaLocation="http://schemas.test.com/Support/Services/test1/2012 Support.test1.v1.xsd">
    - <Request>
    <Memid>10</Memid>
    <Actid>32</Actid>
    <Pax>3</Pax>
    <Flt>2012-DEC-10</Flt>
    <Username>WebUserNameTest</Username>
    </Request>
    <Request>
    <Memid>1</Memid>
    <Actid>3</Actid>
    <Pax>2</Pax>
    <Flt>2012-DEC-12</Flt>
    <Username>WebUserNameTest</Username>
    </Request>
    </Transaction>
    I want to extract the element values :
    The below code will help me when i have no namespace , what must be done in order to work with namespace and etract element value
    v_string_xml :=
    ' //Request[' || TO_CHAR (counter_xml) || ']/Memid/text()';
    v_ssp_table (v_ssp_table.COUNT).memid :=
    p_xml_in.EXTRACT (v_string_xml).getnumberval ();
    v_string_xml :=
    '//Request[' || TO_CHAR (counter_xml) || ']/Actid/text()';
    v_ssp_table (v_ssp_table.COUNT).actid :=
    p_xml_in.EXTRACT (v_string_xml).getnumberval ();
    v_string_xml :=
    '//Request['
    || TO_CHAR (counter_xml)
    || ']/Pax/text()';
    v_ssp_table (v_ssp_table.COUNT).pax :=
    p_xml_in.EXTRACT (v_string_xml).getnumberval ();
    v_string_xml :=
    '//Request[' || TO_CHAR (counter_xml) || ']/Flt/text()';
    v_ssp_table (v_ssp_table.COUNT).flt :=
    p_xml_in.EXTRACT (v_string_xml).getstringval ();
    v_string_xml :=
    '//Request['
    || TO_CHAR (counter_xml)
    || ']/Username/text()';
    v_ssp_table (v_ssp_table.COUNT).username :=
    p_xml_in.EXTRACT (v_string_xml).getstringval ();

    declare
      v_xml xmltype := xmltype( '<?xml version="1.0" encoding="UTF-8" ?>
    <Transaction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.test.com/Support/Services/test1/2012" xsi:schemaLocation="http://schemas.test.com/Support/Services/test1/2012 Support.test1.v1.xsd">
    <Request>
    <Memid>10</Memid>
    <Actid>32</Actid>
    <Pax>3</Pax>
    <Flt>2012-DEC-10</Flt>
    <Username>WebUserNameTest</Username>
    </Request>
    <Request>
    <Memid>1</Memid>
    <Actid>3</Actid>
    <Pax>2</Pax>
    <Flt>2012-DEC-12</Flt>
    <Username>WebUserNameTest</Username>
    </Request>
    </Transaction>' );
    begin
      for r_xml in ( select *
                     from xmltable( xmlnamespaces( default 'http://schemas.test.com/Support/Services/test1/2012' )
                                   , '/Transaction/Request'
                                   passing v_xml
                                     columns memid number path 'Memid'
                                           , actid number path 'Actid'
                                           , pax number path 'Pax'
                                           , flt varchar2(100) path 'Flt'
                                           , username varchar2(100) path 'Username'
      loop
        dbms_output.put_line( r_xml.memid );
        dbms_output.put_line( r_xml.actid );
        dbms_output.put_line( r_xml.pax );
        dbms_output.put_line( r_xml.flt );
        dbms_output.put_line( r_xml.username );
      end loop;
    end;

  • How to use XML with SQLServer2000 without IIS?

    I don't want to use IIS
    so,is there any WEBServer that can take the place of IIS?

    select * from sysobjects where name='sysobjects' for xml auto

  • XML with attributes?

    Hello
    I've got a table XYZ with the fields ABC and DEF. I want Oracle XE database to give me the following XML back:
    <ROWSET>
    <ROW ABC="..." DEF="..."/>
    <ROW ABC="..." DEF="..."/>
    </ROWSET>
    the fields as attributes. I know only how to get XML with elements but I need xml attributes. Does anybody know how this works with ODP.NET? I use the XmlCommandType property, r=ExecuteXmlReader() function and "doc.load(r)". In the past I got XML with attributes using Oracle9i R2, OO4O and MS Visual Basic 6. I set a property for each column.
    Regards
    Marcus Warm
    (Germany)
    [Oracle 10g Express Edition R2, Visual Studio 2005 VB, ADO.NET 2.0, Windows
    XP]
    <<also posted in de.comp.datenbanken.misc>>

    Hi
    In this case you have to change your Source structure and map the attrbute values to target and in receiver channel you can perform your content conversion.
    Regards
    Ramg
    Edited by: Ramkumar Ganesh on Apr 28, 2010 11:09 PM

  • XML Tree structure

    Hi there,
    I am in a datastructures class and we're supposed to create classes to represent an XML hierarchy in java. There is a base class that is inherited by the different node types (Document, Element, Text). Unfortunately I am running into an issue of keeping track of the parent nodes. Normally I would just create a method called setParent(Node parentNode) when addChild(Node childNode) is called. I can't do that because of how they defined the interface. Because the Node interface doesn't include that method declaration... it isn't accessible, so I'd have to cast it to the type of the base class with the setParent(Node parentNode) method. This increases the likelihood that the code would fail if a node interface type that isn't my implementation is passed into setParent().
    I can't modify their interface so I am not sure what else I can do to track the parent classes. Any ideas?
    P.S. They are using checkstyle which won't let you use public or protected properties.

    Ok, sorry I should have put the interface on here:
    public interface Node {
        int DOCUMENT_NODE = 1;
        int ELEMENT_NODE = 2;
        int TEXT_NODE = 3;
         * @return the type of this node (DOCUMENT_NODE, ELEMENT_NODE, or TEXT_NODE)
        int getType();
         * @return the parent node of this node, or null if it has no parent
        Node getParent();
         * @return the first child of this node, or null if it has no children
        Node getFirstChild();
         * @return the last child of this node, or null if it has no children
        Node getLastChild();
         * @return the next sibling of this node, or null if it has no next sibling
        Node getNextSibling();
         * @return the previous sibling of this node, or null if it has no previous sibling
        Node getPreviousSibling();
         * Inserts a new child node under the target node.
         * @param newChild the new child node to be inserted
         * @param child the child node before which the new node should be inserted
         * @throws IllegalArgumentException if newChild is null
         * @throws IllegalArgumentException if child is null
         * @throws IllegalArgumentException if child is not a child of the target node
        void insertChildBefore(Node newChild, Node child);
         * Appends a child to the target node's list of children.
         * @param newChild the new child node to be appended
         * @throws IllegalArgumentException if newChild is null
        void appendChild(Node newChild);
         * Removes a child from the target node's list of children.
         * @param child the child to be removed
         * @throws IllegalArgumentException if child is null
         * @throws IllegalArgumentException if child is not a child of the target node
        void removeChild(Node child);
         * Replaces an existing child node with a new node.
         * @param newChild the new node that is replacing the old node
         * @param oldChild the old node that is being replaced
         * @throws IllegalArgumentException if newChild is null
         * @throws IllegalArgumentException if oldChild is null
         * @throws IllegalArgumentException if oldChild is not a child of the target node
        void replaceChild(Node newChild, Node oldChild);
    }

  • Starting xml with java

    hi all,
    cud any one provide me with the url that contain the examples of how to integrate xml with java.as i am new in this field so i need something from the very basic.and what all stuff do i need on my system to run the code.
    thanx in advance
    anshul

    http://java.sun.com/xml/index.html

  • How to preserve nested layers for versions below CS6?

    Hi there - I'm trying to save a PSD created with CC2014 for a developer who is using a version of Photoshop older than CS6. The problem is that when he opens the PSD with his version the nested layers are all lost, which makes the document organization really difficult to understand. Is there a way to downsave or export the PSD in such a way that the nested layers are preserved?
    Thanks,
    Elena

    No, because older versions of Photoshop only understood up to 5 layer groups (versus the current 10).
    And much older versions didn't understand layer groups at all.
    The nested layers themselves are not lost, but the deeper layer groups will be lost in older versions of Photoshop.  (content preserved, not organization)

  • How do we work with Text Frames in a structured xml template

    Hi ,
    I am working with structured template using Framemaker 7.2. I need to add Text Frame in the structured template. Could you please tell me how do I add text frame with the body page of a strcutred template.
    Thanks
    Manas.

    Hi Manas,
    Text frames work the same whether the template is structured or unstructured. The only thing you should be aware of is that a text frame creates another flow, which can be structured or unstructured. In either case, you will not be able to export its contents to XML. You didn't mention XML specifically, just thought I would note that.
    Do you need general instructions on inserting a text frame? If so, I think the user guide should have that.
    Russ

  • How to convert an xml to another Xml with a different structure...

    hi
    i have an xml which should be converted to a standard xml with an entirely different structure(Different elements)....can this be done with xml,xsl alone or do we need to write an java class along with them...if there are any examples..it would be of great help...plz help me out....as this is a work stopper...
    given below is the kind i have
    <hotelinfo>
    <hotelname>RADISSON HOTEL CHENNAI </hotelname>
    <address>355 C Gst Road St Thomas Mount Chennai1 600016IN</address>     <price>90.00 - 150.00</price>
    <distance>2 (W)</distance>
    </hotelinfo>
    i need to convert it into
    <propertyName>RADISSON HOTEL CHENNAI </propertyName>
    <address>
    <addressLine>355 C Gst Road St Thomas Mount</addressLine>
    <CityName>Chennai</CityName>
    <PostalCode>600 001</PostalCode>
    <StateName>TamilNadu</StateName>
    <CountryName>India</CountryName>
    </address>
    thanks in advance

    Ok here is the code...
    package mypack;
    import java.io.File;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    * @author SM23772
    * TODO To change the template for this generated type comment go to
    * Window - Preferences - Java - Code Style - Code Templates
    public class Roopa {
         public static void main(String[] args) {
              File docFile = new File("Roopa.xml");
              Document doc = null;
              Document newDoc = null;
              String hname = null, task = null;
              try {
                   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   doc = db.parse(docFile); //parsing Roopa.xml
                   newDoc = db.newDocument(); //Created New document Object for new xml
                   hname = doc.getElementsByTagName("hotelname").item(0)
                             .getFirstChild().getNodeValue();
                   task = doc.getElementsByTagName("task").item(0).getFirstChild()
                             .getNodeValue();
                   Node rootNode = newDoc.createElement("property-info"); //creating root node;
                   Node pp = newDoc.createElement("name"); //creating a node called name
                   Node taskNode = newDoc.createElement("task"); //creating a node called task
                   pp.appendChild(newDoc.createTextNode(hname)); //appending a text node inisde name
                   taskNode.appendChild(newDoc.createTextNode(task)); //appending the text node inside task
                   rootNode.appendChild(pp); //asppending the nodes inside the root node                       
                   rootNode.appendChild(taskNode);
                   newDoc.appendChild(rootNode); //appending the root node to the document
                   writeXmlFile(newDoc, "Dest.xml"); //function called to write the document to Dest.xml
              } catch (Exception e) {
                   System.out.println(e);
         public static void writeXmlFile(Document doc, String filename) {
              try {
                   // Prepare the DOM document for writing
                   Source source = new DOMSource(doc);
                   // Prepare the output file
                   File file = new File(filename);
                   Result result = new StreamResult(file);
                   // Write the DOM document to the file
                   Transformer xformer = TransformerFactory.newInstance()
                             .newTransformer();
                   xformer.transform(source, result);
              } catch (TransformerConfigurationException e) {
              } catch (TransformerException e) {
    The xml files:
    roopa.xml:
    <hotel>
    <hotelname>RADISSON HOTEL CHENNAI</hotelname>
    <more-info><task>give treate to shanu</task></more-info>
    </hotel>
    Dest.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <property-info><name>RADISSON HOTEL CHENNAI</name><task>give treate to shanu</task></property-info>Please go through the code.. if u have any more concerns do let me know................
    cheers
    Shanu

  • Designer beginner's question: How to populate form with XML web service output?

    sorry, here is yet another Adobe Designer beginners question: <br /><br />My form uses a webservice data connection which returns <br />an xml-string like this: <br /><br /><?xml version="1.0" encoding="utf-16"?> <br /><CurrentWeather> <br />  <Location>Sion, Switzerland (LSGS) 46-13N 007-20E 481M</Location> <br />  <Time>Apr 26, 2007 - 09:50 AM EDT / 2007.04.26 1350 UTC</Time> <br />  <Wind> from the WSW (240 degrees) at 15 MPH (13 KT):0</Wind> <br />  <Visibility> greater than 7 mile(s):0</Visibility> <br />  <SkyConditions> partly cloudy</SkyConditions> <br />  <Temperature> 80 F (27 C)</Temperature> <br />  <DewPoint> 46 F (8 C) </DewPoint> <br />  <RelativeHumidity> 30%</RelativeHumidity> <br />  <Pressure> 29.88 in. Hg (1012 hPa)</Pressure> <br />  <Status>Success</Status> <br /></CurrentWeather> <br /><br />What is the simplest and recommended way to extract the <br />element fields to my form? <br /><br />Thank you very much an kind regards, <br />Hans Grund

    The question is still unanswered!
    Let me give some details and break up the problem
    in more specific questions:
    - In Designer 8.1 I click new data binding --> wsdl -->
    http://www.webservicex.net/globalweather.asmx?wsdl
    A message box comes up and says "cannot load wsdl file"
    ==> 1. Question:
    Why maybe refuses Designer to load the http-wsdl,
    although this option is explicitly allowed?
    - When I save the wsdl to a file, Designer loads it
    without any problems. The web service uses two input parameters
    (CountryName and CityName) and returns an xml-string GetWeatherResult)
    like the one in my first posting. I drag these fields from the binding view to my form, and it runs ok!
    - THE PROBLEM IS, THAT I NEET TO EXTRACT THE ELEMENT FIELDS
    FROM THE RESULT XML-STRING!
    ==> 2. Question:
    How to extract xml element fields from wsdl output into a form?
    - I tried with eclipse and XmlSpy to build a modified wsdl file
    with structured output definition, so that the specific element fields
    show up in the data binding view and are usable to my form,
    and the modified wsdl maps consistently to the web service result string.
    So far without success: In the PDF -preview or Reader-
    when the wsdl-binding is executed and the web service output
    should show up in the result fields, just nothing happens.
    ==> 3. Question:
    Can this strategy to provide a "modified wsdl" possibly succeed,
    and how?
    ==> 4. Question:
    Is is possible -and how?- to check whether an xml string
    is valid as web service output against the wsdl-definition?
    ==> 5. Question:
    How to debug a web service connection with Designer?
    - Finally I tried to find a way to load the result xml-string
    into a local var in the script editor and parse it, much like:
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.load(DataSet.MyForm.GetWeatherResult.rawValue);
    ==> 6. Question:
    Is it possible -and how?- to use a framework like dotnet?
    How to utilize SAX or DOM in Designer?
    Many thanks and appreciations for your help!!

Maybe you are looking for

  • Airport connectivity issue

    Not sure if this is the best place for this, but I'm having an odd issue. My airport seems stuck on a set IPv4 address. Here's what happened. I'm on the road, yesterday I connect wirelessly in an airport (a physical airport, you know, with airplanes

  • How to create webcontent

    I have application running in liferay . here we create the pages based on xml structure. like xml contain Report group reportname month date expiry mode reportname reportgroup when we create the page ,we follow the default structure and keep on repea

  • How to keep my library when I get new computer

    When I got a new computer and tried to tried to transfer an audio book into my iphone I got a message that I had to click "sync manually" ..... when I tried to do this I got a message that if I did it itunes would erease my entire library and then I

  • Automatically call specific method at other method invocation~ish?

    I have a class which basically acts as a wrapper around a List. It contains a List object and some methods that do something with that list. Now, in order to prevent exceptions, I've made a basic method that just checks if the List field is null and,

  • Period and Period interval.

    I am confused with period and period interval. "As many periods as required can be open simultaneously. However, only two period intervals can be open at the same time". This is the statement I saw in the book. Can somebody explain it more.