JAXB Unmarshalling complexity

Hello all,
I need help on JAXB
the situation is as below...
i have to write a program that communicates with a server. the communication is request-response kind of communication which is to be carried out through XML.
so everytime i have to send any request i need to create an XML and then send it to the server. i get the response in the form of XML. then i have to parse the XML to find out whats the response.
previously i used DOM and SAX for creating XML and parsing XML respectively.
now every response i get, i have to validate it against a DTD.
now i'm trying out JAXB. so i first converted all the DTDs to XSD (xml schema docs). because JAXB doesn't support DTDs.
now with JAXB, i'm creating the XML requests and sending it to the server and getting the response.
but here is one problem.....
as with JAXB, of i have to unmarshall the xml response i have to first create a JAXB context. and unmarshall it to that xml object that i'm expecting. but suppose i get some other response then how am i supposed to know that.
i'll explain the above with a small example.
suppose i have the following DTDs
SearchRequest.dtd..............for search requests
SearchResponse.dtd..............for search responses
ErrorResponse.dtd.............for if the server sends any error.
now first i convert this DTDs to XSDs and so i get
SearchRequest.xsd, SearchResponse.xsd, ErrorResponse.xsd
and then using the JAXB compiler i create the JAXB derived classes in the following package
com.xyz.SearchRequest
com.xyz.SearchResponse
com.xyz.ErrorResponse
now suppose i created the xml request and sent it to the server and i got the response. and i have to unmarshall it.
(the server will send me SearchResponse.xml if everything if fine but ErrorResponse.xml it theres an error).
now heres the problem. the server will send the SearchResponse or ErrorResponse. and ill have to determine what it is before i start to unmarshall.
i hope i have communicated my problem....
thankyou
java-jones

Not sure if this will help you or if this is what you are looking for, but from the JAXB Users' Guide:
More About Unmarshalling
The Unmarshaller class in the javax.xml.bind package provides the client application the ability to convert XML data into a tree of Java content objects. The unmarshal method for a schema (within a namespace) allows for any global XML element declared in the schema to be unmarshalled as the root of an instance document. The JAXBContext object allows the merging of global elements across a set of schemas (listed in the contextPath). Since each schema in the schema set can belong to distinct namespaces, the unification of schemas to an unmarshalling context should be namespace-independent. This means that a client application is able to unmarshal XML documents that are instances of any of the schemas listed in the contextPath; for example:
JAXBContext jc = JAXBContext.newInstance( "com.acme.foo:com.acme.bar" );
Unmarshaller u = jc.createUnmarshaller();
FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) ); // ok
BarObject barObj = (BarObject)u.unmarshal( new File( "bar.xml" ) ); // ok
BazObject bazObj = (BazObject)u.unmarshal( new File( "baz.xml" ) ); // error

Similar Messages

  • JAXB unmarshalling error

    We are getting a JAXB unmarshalling error:
    while processing the following <condition> tag which is of type xsd:string
    <condition> x < 100 </condition>
    The error is probably happening due to "<" token as a part of string type.
    xml.bind.JAXBException: Unexpected error in Unmarshalling
    at oracle.xml.jaxb.JaxbUnmarshaller.unmarshal(JaxbUnmarshaller.java:224)
    Any ideas how to resolve this issue?
    Note
    <condition> x >100 </condition> is getting unmarshalled successfully by JAXB unmarshaller.
    Thanks

    Hi,
    Did you tried to put & lt; (without space) instead of < ?
    Best Regards,
    Paweł

  • JAXB unmarshalling error for " " token as part of xsd:string type element

    JAXB unmarshalling error for "<" token as part of xsd:string type element
    We are getting a JAXB unmarshalling error:
    while processing the following <condition> tag which is of type xsd:string
    <condition> x < 100 </condition>
    The error is probably happening due to "<" token as a part of string type.
    xml.bind.JAXBException: Unexpected error in Unmarshalling
    at oracle.xml.jaxb.JaxbUnmarshaller.unmarshal(JaxbUnmarshaller.java:224)
    Any ideas how to resolve this issue?
    Note
    <condition> x > 100 </condition> is getting unmarshalled successfully by JAXB unmarshaller.
    Thanks

    Hi,
    Did you tried to put & lt; (without space) instead of < ?
    Best Regards,
    Paweł

  • JAXB unmarshalling

    Hi,
    I'm using JAXB 1.0-ea on W2K Server and have noticed that when I first unmarshal a 1KB file it takes 800ms. I then immediately unmarshall a 26KB file and it takes 400ms.
    I'm wondering if somebody has any ideas as to why the 1KB file is taking twice as long to unmarshall as the 26KB file?
    thanks,
    Dean

    I have 2 XML files, file A is 1KB and file B is 26KB. File A is exactly the same structure as file B with no difference in complexity or depth of the XML structures, its only shorter.
    When I load these 2 files in a loop the timings I get are kinda interesting, as this is what I see:
    File A: 590ms
    File B: 340ms
    File A: 16ms
    File B: 110ms
    File A: 0ms
    File B: 80ms
    File A: 0ms
    File B: 31ms
    File A: 0ms
    File B: 125ms
    File A: 0ms
    File B: 220ms
    The above timings are for the unmarshalling of the XML file, eg MyRootElement.unmarshal(fileInputStream);
    So, does anybody have any ideas why loading file A is taking so long on the first load, and nothing on subsequent loads? I'm using JAXB 1.0-ea on W2K using JDK1.4.1.
    thanks,
    Dean

  • Problem with JAXB Unmarshall - javax.xml.bind.UnmarshalException

    Hi,
    I'm getting an expection while unmarshalling using JAXB. The error is as follows :
    DefaultValidationEventHandler: [ERROR]: unexpected element (uri:"http://www.etrade.com/ee/systemdomainao/search", local:"Context_Id"). Expected elements are <{}contextId>,<{}predicateInterceptor>,<{}isDefaultsearch>,<{}implicitContextSQL>,<{}contextName>,<{}searchId>,<{}implicitContextText>
    I've generated JAXB classes using xjc command from my schema. The root element is Search object which has a List of Searchcontext and Columlist object. When I'm trying to unmarshall the XML, I'm getting the above exception. What is baffling, if I comment out the <tns:SearchContext> entry from the XML, unmarshall doesn't throw any exception and populates the columnlist properly. Columnlist and Searchcontext have little difference except that columnlist contains more elements.
    Here'e the unmarshall code,
    URL metadataURL = this.getClass().getClassLoader().getResource("metadata/search/PARTICIPANT.xml");
    JAXBContext jc = JAXBContext.newInstance("com.etrade.ee.systemdomainao.search.domain");
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    unmarshaller.setEventHandler(new javax.xml.bind.helpers.DefaultValidationEventHandler());
    Search search = (Search)unmarshaller.unmarshal(metadataURL);
    Any pointers will be highly appreciated.
    Thanks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    XSD :
    XSD :
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.etrade.com/ee/systemdomainao/search" targetNamespace="http://www.etrade.com/ee/systemdomainao/search" elementFormDefault="qualified" attributeFormDefault="unqualified">
         <!-- Searchcontext type definition -->
         <xs:complexType name="Searchcontext">
              <xs:sequence>
                   <xs:element name="Context_Id" type="xs:int"/>
                   <xs:element name="Search_Id" type="xs:string"/>
                   <xs:element name="Context_Name" type="xs:string"/>
                   <xs:element name="Implicit_Context_SQL" nillable="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="500"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="Implicit_Context_Text" nillable="true">
                        <xs:simpleType>
                             <xs:restriction base="xs:string">
                                  <xs:maxLength value="500"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
                   <xs:element name="Is_Defaultsearch" type="xs:boolean" nillable="true"/>
                   <xs:element name="Predicate_Interceptor" type="xs:string" nillable="true"/>
              </xs:sequence>
         </xs:complexType>
         <!-- Searchlist type definition -->
         <xs:complexType name="Columnlist">
              <xs:sequence>
                   <xs:element name="Columnlist_Id" type="xs:int"/>
                   <xs:element name="Search_Id" type="xs:string"/>
                   <xs:element name="Is_Quicksearchable" type="xs:boolean" nillable="true"/>
                   <xs:element name="Is_Advancesearchable" type="xs:boolean" nillable="true"/>
                   <xs:element name="Is_Quicksearchview" type="xs:boolean" nillable="true"/>
                   <xs:element name="Is_Fullview" type="xs:boolean" nillable="true"/>
                   <xs:element name="Is_Sortable" type="xs:boolean" nillable="true"/>
                   <xs:element name="Is_Defaultsort" type="xs:boolean" nillable="true"/>
                   <xs:element name="Default_SortOrder" type="xs:string" nillable="true" minOccurs="0"/>
                   <xs:element name="Display_Order" type="xs:int" nillable="true"/>               
                   <xs:element name="Default_Value" type="xs:string" nillable="true" maxOccurs="6"/>
                   <xs:element name="Default_Operator" type="xs:string" nillable="true"/>
                   <xs:element name="Is_Closedset" type="xs:boolean"/>
                   <xs:element name="Closedset_List_Name" type="xs:string" nillable="true"/>
                   <xs:element name="Is_RelatedMenu" type="xs:boolean" minOccurs="0"/>
                   <xs:element name="Column_Name" type="xs:string"/>
                   <xs:element name="Display_Name" type="xs:string"/>
                   <xs:element name="Is_UDF" type="xs:boolean" nillable="true"/>
                   <xs:element name="Table_Name" type="xs:string"/>
                   <xs:element name="Data_Type" type="xs:string"/>
                   <xs:element name="Column_Size" type="xs:int"/>
              </xs:sequence>
         </xs:complexType>
         <!-- Search declaration -->
         <xs:element name="Search">
              <!--<choice>
         <xs:interface name="java.io.Serializable" />
         </choice>-->
              <xs:complexType>
                   <xs:sequence>
                        <xs:element name="Search_Id" type="xs:string"/>
                        <xs:element name="Schema_Set">
                             <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                       <xs:maxLength value="20"/>
                                       <xs:minLength value="1"/>
                                  </xs:restriction>
                             </xs:simpleType>
                        </xs:element>
                        <xs:element name="SearchContext" type="tns:Searchcontext" maxOccurs="unbounded"/>
                        <xs:element name="ColumnList" type="tns:Columnlist" maxOccurs="unbounded"/>
                   </xs:sequence>
              </xs:complexType>
              <xs:key name="Search_PrimaryKey_1">
                   <xs:selector xpath="."/>
                   <xs:field xpath="tns:Search_Id"/>
              </xs:key>
              <xs:keyref name="Searchcontext_ForeignKey_1" refer="tns:Search_PrimaryKey_1">
                   <xs:selector xpath=".//tns:SearchContext"/>
                   <xs:field xpath="tns:Search_Id"/>
              </xs:keyref>
              <xs:keyref name="Columnlist_ForeignKey_2" refer="tns:Search_PrimaryKey_1">
                   <xs:selector xpath=".//tns:ColumnList"/>
                   <xs:field xpath="tns:Search_Id"/>
              </xs:keyref>
              <xs:key name="Searchcontext_PrimaryKey_1">
                   <xs:selector xpath=".//tns:SearchContext"/>
                   <xs:field xpath="tns:Context_Id"/>
              </xs:key>
              <xs:key name="Columnlist_PrimaryKey_1">
                   <xs:selector xpath=".//tns:ColumnList"/>
                   <xs:field xpath="tns:Columnlist_Id"/>
              </xs:key>
         </xs:element>
    </xs:schema>

  • JAXB unmarshalling problem

    Hi
    I have a problem with unmarshalling.
    when my XML document is valide ,there is no probem but when the document is not valid(for exemple i put a String value in an element of type xs:decimal) i get a strange result:I thought that i will get a java.lang.NumberFormatException when i set the java attribute mapped with that element or i get the error value but this attribute get null as value and there is no NumberFormatException.

    riadhhwajdii wrote:
    Is there any way to modify this default behavior for jaxb to make it show the error value or get a java exceptionyes, see [this post|http://forums.sun.com/thread.jspa?messageID=11031834#11031834]
    Edited by: jtahlborn on Aug 8, 2010 10:01 AM

  • JAXB unmarshalling elements with xs:type explicitly set

    I am working with XML content where the XSD defines an element as being of a complexType (say "ParentType") but the content explicitly sets the element's xs:type attribute to an extension of that complexType (say "ChildType").
    As far as I can tell the XML is valid, but JAXB issues the following when unmarshalling:
    DefaultValidationEventHandler: [ERROR]: Unexpected element {}:child1
    javax.xml.bind.UnmarshalException: Unexpected element {}:child1
    Where <child1> is added via the extension.
    Is this a problem with JAXB or my XSD?
    (XSD and XML enclosed below)
    XSD ------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:complexType name="ParentType">
    <xs:sequence>
    <xs:element name="parent1" type="xs:string"/>
    <xs:element name="parent2" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ChildType">
    <xs:complexContent>
    <xs:extension base="ParentType">
    <xs:sequence>
    <xs:element name="child1" type="xs:string"/>
    </xs:sequence>
    </xs:extension>
    </xs:complexContent>
    </xs:complexType>
    <xs:element name="root">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="child" type="ParentType"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    XML -----------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="problem.xsd">
    <child xsi:type="ChildType">
    <parent1/>
    <parent2/>
    <child1/>
    </child>
    </root>

    JAXB doesn't handle OO schema design. I tried to do something similar where I defined a type called base and then defined that my document contained 1 or more base elements. Then I tried to unmarshall a document that contained elements that were of types extending from base. I ended up with the same issue.
    It seems that when the xjc compiler defines the classes it isn't smart enough to realize the element defined as parent could also contain a child element since child extends parent. Your XSD and XML are valid.
    I would think that JAXB should identify that because there is a type the extends the defined type, that an element of the sub-type might be subsituted i.e. check the actual type of the element in the XML before attempting to unmarshall it as the default type. It doesn't do that. I am not sure if this is as desinged, or a flaw in the implementation.

  • JAXB unmarshalling date

    I have used JAXB to marshall a java class for a date information. The resulting XML data looks fine. It contains the date I want. However, once I'm trying to unmarshall the XML file using JAXB I cannot retrieve the date back.
    For example, my object contain a startTime field that is java.util.Calendar.
    if I'm doing..... object.getStartTime() I would get null in return?
    Does anyone encounter this problem before? Or anyone know a solution to this? Any pointer would be highly appreciated.

    To give you more information.....
    i have debugged more into this.
    My code is able to retrieve the date string back from the XML data which is:
    2006-02-01-08:00
    This string is in a variable "lexval"
    However, this following statement return null value:
    oracle.xml.jaxb.JaxbDatatypeConverter.parseDate(lexval)
    Anybody has any idea on this issue? does parseDate method has any restriction?
    --Thanks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Jaxb unmarshalling and setvalidating()

    I am using jaxb 1.0 with jdk1.4 , i am trying to unmarshall the incoming request which a xml.
    It has a element called attachment list which is mandatory as per the schema. but i dont want my unmarshaller to validate request and throw error instead i just need to objects from unmarshaller. so i set the setvalidating(false).but i am still getting the validation error.Any help in this is highly appreciated.

    Check the date of the post dude - its months old and the dude who posted it hasn't been back since then (only one post, this one). If you want to help, focus on recent threads. Resurrecting old threads triggers other helpful people to unnecessarily invest time into them and creates extra work for the moderators.

  • JAXB anonymous complex types and inner interfaces

    When JAXB generates interfaces/classes for a schema with nested anonymous complex types, it nests the resultant interfaces/classes. Is there any way to force JAXB to put these nested interfaces/classes at the top level of the package instead?
    Note that if I specify a <class> binding, it changes the name of the inner interface/class, but doesn't change the fact that it's nested. It is my understanding that in JAXB Beta specifying a <class> binding for an anonymous complexType would in fact push it to the top level. Was this a bug, or is it a feature missing from 1.0, or am I misinformed about JAXB Beta?
    I realize that scope-wise it makes sense to generate nested anonymous complex types as inner classes, however it leads to highly unreadable code when dealing with deeply nested structures. I'm hoping someone knows of a way to workaround this issue without simply redefining the anonymous complex types as named complex types.
    Thanks,
    -Greg Merrill

    According to sec 4.4 "By default if xml schema component for which java content interface is to be generated is scoped within a complex type then the java content interface should appear nested within the content interface representing the complex type. ".
    So I doubt that worked with beta and you may have to represent this anonymous complex type as a named complex type to avoid the nesting.
    Regards,
    Bhakti

  • Jaxb unmarshalling: how to ignore unknown elements?

    Hi,
    I use jaxb 1.1 for communication with an external partner. (Took schema, compiled it, used generated classes for unmarshalling like this:
    Document doc = /* some document building */
    JAXBContext jaxbContext = JAXBContext.newInstance(MyConstants.JAXB_PACKAGE);
    Unmarshaller unMarshaller = jaxbContext.createUnmarshaller();
    myObject = (MyObject) unMarshaller.unmarshal(doc);) Everything worked fine until they decided to add new elements to their xml-Document without notifiing me (nothing very unusual I think...). Now I get a javax.xml.bind.UnmarshallingException with Message "Unexpected Element". Is there any way to ignore such elements and just take the known Elements from the xml-stream?
    Thanks in advance
    Thomas

    Update your schema with the following after you known elements.
    <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded">
    <xs:annotation>
    <xs:documentation>An extension point for arbitrary xml value fragments</xs:documentation>
    </xs:annotation>
    </xs:any>
    Hunter

  • JAXB Unmarshalling and namespace

    Hi All ,
    Im using jaxb to marshall and unmarshall xml messages.Every thing seems to work fine expect for one
    small part ...... the namespace is removed form the xml .For example
    <RECORD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Record.xsd">
    becomes
    <RECORD>
    Any idea why this happens ?
    thanks
    Jim

    Hi Jimmy -
    Have you tried including this code at marshall time?
    marshaller.setProperty( Marshaller.JAXB_SCHEMA_LOCATION, "schema_path path_to_xsd.xsd");
    Good luck.
    cm

  • JAXB Unmarshall Validation Error Handling

    Hello,
    During unmarshalling, if say a required element is missing, a ValidationEvent is created and passed to the handleEvent(ValidationEvent e) method of a custom class implementing the ValidationEventHandler interface.
    From the ValidationEvent, one can get the ValidationEventLocator, which allows you to find out the column and row numbers of where the validation failed in the XML file.
    The problem is, this XML file that is being unmarshalled/marshalled is hidden from the user and not allowed to be accessed directly. I would like to tell the user where the validation failed by referencing nodes instead of column/line numbers.
    For example, if an element called 'foo' requires one child 'bar', and if 'bar' is discovered as missing during unmarshalling, the message that comes with the ValidationEvent will say:
    uncompleted content model. expecting: <bar>
    I don't see a way to find out exactly where in the entire XML file that 'bar' is supposed to occure. How do I find out that the 'bar' element is expected to be under 'foo' element?
    Using the Eclipse debugger, I can see that the parent 'foo' is referenced somewhere deep within the JAXB impl classes, but I don't see any public methods that will allow me to get it.
    Any ideas?
    Thanks,
    AJ

    Try 'ValidationEventLocation.getObject()', and see if you can narrow it down from there.
    I'm also looking for a better solution, since I have a case where a child element is violating it's pattern restrictions, but all I get is a reference to the parent, with no apparent indication as to which child is at fault.

  • JAXB: Marshalling complex nested data structures?

    Hello!
    I am dealing with complex data structures:
    Map< A, Set< B > >
    Set< Map< A, B > >
    Map< A, Map< B, Set< C > > >
    Map< A, Set< Map< B, C > > >
    [and so on](NOTE: In my case it doesn't matters if I use Set<?> or List<?>)
    I wanted to write wrappers for JAXB for these data structures, but I have no idea how.
    My idea was: write XmlAdapter with generics for Map, Set and List, but it failed:
    "[javax.xml.bind.JAXBException: class java.util.LinkedList nor any of its super class is known to this context.]"
    because I was using LinkedList<T> inside the XmlAdapter (it seems that from the point of view of JAXB,
    LinkedList<T> is same as LinkedList<Object>)
    Any ideas?

    According to sec 4.4 "By default if xml schema component for which java content interface is to be generated is scoped within a complex type then the java content interface should appear nested within the content interface representing the complex type. ".
    So I doubt that worked with beta and you may have to represent this anonymous complex type as a named complex type to avoid the nesting.
    Regards,
    Bhakti

  • JAXB unmarshall problem - beginner

    Hi Im having real pain trying to get unmarshall to work with JAXB with a very simple set up..
    My DTD looks like
    <!ELEMENT CXMLRESULT (MESSAGE)>
    <!ELEMENT MESSAGE (#PCDATA)>
    and xjs like
    <xml-java-binding-schema version="1.0ea">
    <element name="CXMLRESULT" type="class" root="true">
    </xml-java-binding-schema>
    I create an object marshall it and output to a file.. All looks good. This results in the following in the file..
    <CXMLRESULT>
    <MESSAGE>hello</MESSAGE></CXMLRESULT>
    However when I try to read in that file and unmarshall it I run into problems.. Although I receive NO error during the unmarshall, when I do a toString() afterwards then it does not display the MESSAGE element, and similarly trying to validate the object says that MESSAGE hasn't been detected.. I cannot figure out why this is.. The file was written out by JAXB so how come it cant read it back in.. For my unmarshall I do ...
    CXMLRESULT cxmlresult=new CXMLRESULT();
    try{
    try{
    input=new File("/in.xml");
    fileInputStream=new FileInputStream(input);
    } catch (IOException e)
    { System.out.println("error with file"); }
    cxmlresult.unmarshal(fileInputStream);
    } catch(UnmarshalException e) {
    e.printStackTrace();
    System.out.println(cxmlresult.toString());
    Doing this just shows a CXMLRESULT and not the MESSAGE element..
    Any ideas ?
    Mark

    Try this:
    CXMLRESULT cxmlresult = CXMLRESULT.unmarshal(fileInputStream);Dave

Maybe you are looking for

  • GRIR Clearing ( MR 11)

    While clearing the lines through MR11. There are some lines which shows a message of " Budget exceed". How can we close such lines.

  • Connecting external speakers to TV model 50L2200U

    I purchased a 3 pc speaker set that connects with the 1/8" audio jack.  My problem is I can't disable the TV speakers and control the sound with my TV remote with the external amplified speakers hooked up. Any ideas?

  • display :column attribute autolink="true" problem

    Hi, I am using <display:column property="contactEmail" sortable="true" titleKey="varianceReport.contactEmail" style="text-align:left" autolink="true"/> for display a Contact Email column and it should have a link to send mail. But if i use this autol

  • There were warnings or errors while signing the jar  - webutil

    As oracle 10g comes with webutil, i am now trying to configure it with jocob and trying to run webutil_demo form, but I am getting bean not found error, I searched many forums but could not resolve my problem, everything seems to be at its place, but

  • LabVIEW Interface for third party EtherCAT slaves

    I have a third party EtherCAT hardware (slave) and software. I am using and industrial PC with Intel PRO network card as the EtherCAT master. This setup works fine, and I can talk to the EtherCAT modules using the thirdparty software.  Now, I would l