XML: Deep/Array Elements

There have been several questions posted about how to create iFS type Definitions for XML files which contain compound elements or arrays of compound elements. The solution to this problem has already been posted elsewhere but here is a summary
of how to make this work.
Here is an example XML file which contains an array of compound elements. The file represents a Purchase Order. Note how the <LINEITEMS> element consits of an array of <LINEITEM> elements. Note how each instance of the <LineItem> elements consists of
<ITEMNUMBER>,<ITEMDESCRIPTION>,<QUANTITY> & <UNITPRICE> elements.
<?xml version = '1.0' standalone = 'yes'?>
<PURCHASEORDER>
<REQUESTER>Angela B. Miller</REQUESTER>
<USERID>amiller</USERID>
<COSTCENTER>A10</COSTCENTER>
<REFERENCE>AMILLER:20000419-070435930</REFERENCE>
<ACTIONS>
<ACTION>
<ACTIONEDBY>eclark</ACTIONEDBY>
<DATEACTIONED></DATEACTIONED>
</ACTION>
</ACTIONS>
<SHIPPINGINSTRUCTIONS>
<SHIPTONAME>Mark D. Drake</SHIPTONAME>
<ADDRESS>
500 Oracle Parkway MS 5op-4
Redwood Shores,
CA 94065
</ADDRESS>
<PHONE>650 506 7000</PHONE>
</SHIPPINGINSTRUCTIONS>
<SPECIALINSTRUCTIONS>
Please Expidite Delivery. Partial Delivery
will be accepted
</SPECIALINSTRUCTIONS>
<LINEITEMS>
<LINEITEM>
<ITEMNUMBER>1</ITEMNUMBER>
<ITEMDESCRIPTION>Video Cabinet</ITEMDESCRIPTION>
<QUANTITY>1</QUANTITY>
<UNITPRICE>1800.0</UNITPRICE>
</LINEITEM>
<LINEITEM>
<ITEMNUMBER>2</ITEMNUMBER>
<ITEMDESCRIPTION>Left Hand Audio Cabinet</ITEMDESCRIPTION>
<QUANTITY>1</QUANTITY>
<UNITPRICE>1200.0</UNITPRICE>
</LINEITEM>
<LINEITEM>
<ITEMNUMBER>3</ITEMNUMBER>
<ITEMDESCRIPTION>Right Hand Audio Cabinet</ITEMDESCRIPTION>
<QUANTITY>1</QUANTITY>
<UNITPRICE>1200.0</UNITPRICE>
</LINEITEM>
<LINEITEM>
<ITEMNUMBER>4</ITEMNUMBER>
<ITEMDESCRIPTION>Center Speaker Cabinet</ITEMDESCRIPTION>
<QUANTITY>1</QUANTITY>
<UNITPRICE>800.0</UNITPRICE>
</LINEITEM>
<LINEITEM>
<ITEMNUMBER>5</ITEMNUMBER>
<ITEMDESCRIPTION>Audio Speaker Cabinet</ITEMDESCRIPTION>
<QUANTITY>2</QUANTITY>
<UNITPRICE>500.0</UNITPRICE>
</LINEITEM>
<LINEITEM>
<ITEMNUMBER>6</ITEMNUMBER>
<ITEMDESCRIPTION>Center Speaker Panel</ITEMDESCRIPTION>
<QUANTITY>1</QUANTITY>
<UNITPRICE>120.0</UNITPRICE>
</LINEITEM>
<LINEITEM>
<ITEMNUMBER>7</ITEMNUMBER>
<ITEMDESCRIPTION>Audio Speaker Panel</ITEMDESCRIPTION>
<QUANTITY>2</QUANTITY>
<UNITPRICE>55.0</UNITPRICE>
</LINEITEM>
<LINEITEM>
<ITEMNUMBER>8</ITEMNUMBER>
<ITEMDESCRIPTION>Cabinet</ITEMDESCRIPTION>
<QUANTITY>1</QUANTITY>
<UNITPRICE>695.0</UNITPRICE>
</LINEITEM>
</LINEITEMS>
</PURCHASEORDER>
If an XML document contains compound elements similar to the LINEITEMS element in the above example, if stores each instance of the compound element as a seperate repository object. This means that in order to store a document similar to the Purchase Order it is necessary to create several different classobjects.
First a Type Definition for the purchase order is required. This will create the classobject that defines the repository object used to store each instance of the PurchaseOrder. It defines the attributes of each of the top level elements of the purchaseorder object, including their datatype.
<?xml version="1.0" standalone="yes"?>
<CLASSOBJECT>
<NAME>PurchaseOrder</NAME>
<SUPERCLASS REFTYPE="name">Document</SUPERCLASS>
<DESCRIPTION>Internet Purchase Order</DESCRIPTION>
<BEANCLASSPATH>ifs.demo.purchaseOrder.type.PurchaseOrder</BEANCLASSPATH>
<ATTRIBUTES>
<ATTRIBUTE>
<NAME>Reference</NAME>
<DATATYPE>String</DATATYPE>
<DATALENGTH>64</DATALENGTH>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>Requester</NAME>
<DATATYPE>String</DATATYPE>
<DATALENGTH>48</DATALENGTH>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>UserID</NAME>
<DATATYPE>String</DATATYPE>
<DATALENGTH>32</DATALENGTH>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>CostCenter</NAME>
<DATATYPE>String</DATATYPE>
<DATALENGTH>3</DATALENGTH>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>Vendor</NAME>
<DATATYPE>String</DATATYPE>
<DATALENGTH>32</DATALENGTH>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>PONumber</NAME>
<DATATYPE>Integer</DATATYPE>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>ShippingInstructions</NAME>
<DATATYPE>Integer</DATATYPE>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>ShippingInstructions</NAME>
<DATATYPE>PublicObject</DATATYPE>
<CLASSDOMAIN REFTYPE="name">
PurchaseOrderShippingInstructionsDomain
</CLASSDOMAIN>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>Rejection</NAME>
<DATATYPE>PublicObject</DATATYPE>
<CLASSDOMAIN REFTYPE="name">
PurchaseOrderRejectionDomain
</CLASSDOMAIN>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>Actions</NAME>
<DATATYPE>PublicObject_Array</DATATYPE>
<CLASSDOMAIN REFTYPE="name">
PurchaseOrderActionDomain
</CLASSDOMAIN>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>SpecialInstructions</NAME>
<DATATYPE>String</DATATYPE>
<DATALENGTH>2048</DATALENGTH>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>LineItems</NAME>
<DATATYPE>PublicObject_Array</DATATYPE>
<CLASSDOMAIN REFTYPE="name">
PurchaseOrderLineItemDomain
</CLASSDOMAIN>
</ATTRIBUTE>
</ATTRIBUTES>
</CLASSOBJECT>
Note that the LINEITEMS element is defined with a data type of PUBLICOBJECT_ARRAY. This means that the LINEITEMS attribute in the repository object will consist of a set of references to other objects in the repository. In order to store the data values from each of the child elements associated with instance of the LINEITEMS array a seperate repostitory object is required. Here is the Type Definition for the repository object used to store this data.
<?xml version="1.0" standalone="yes"?>
<CLASSOBJECT>
<NAME>PurchaseOrderLineItem</NAME>
<SUPERCLASS REFTYPE="name">ApplicationObject</SUPERCLASS>
<DESCRIPTION>Internet Purchase Order</DESCRIPTION>
<BEANCLASSPATH>ifs.demo.purchaseOrder.type.PurchaseOrderLineItem</BEANCLASSPATH>
<DATABASEOBJECTNAME>POLineItem</DATABASEOBJETNAME>
<ATTRIBUTES>
<ATTRIBUTE>
<NAME>ItemNumber</NAME>
<DATATYPE>integer</DATATYPE>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>ItemDescription</NAME>
<DATATYPE>string</DATATYPE>
<DATALENGTH>128</DATALENGTH>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>Quantity</NAME>
<DATATYPE>integer</DATATYPE>
</ATTRIBUTE>
<ATTRIBUTE>
<NAME>UnitPrice</NAME>
<DATATYPE>double</DATATYPE>
</ATTRIBUTE>
</ATTRIBUTES>
</CLASSOBJECT>
If you refer back to the LineItems attribute definition in the PurchaseOrder object you will see that a ClassDomain is used to restrict what kind of objects can be referenced by an element in the LineItems array. In this case the ClassDom ain used is the PurchaseOrderLineItemDomain. The classdomain is used to restrict what type of objects can be referenced by an element in the LineItems Array. In this case it ensures that a LineItems elements can only contain references to an object of type PurchaseOrderLineItem.
Here is the definition of the PurchaseOrderLineItemDomain
<?xml version="1.0" standalone="yes"?>
<CLASSDOMAIN>
<NAME>PurchaseOrderLineItemDomain</NAME>
<DOMAINTYPE>1</DOMAINTYPE>
<CLASSES>
<CLASS REFTYPE="name">PurchaseOrderLineItem</CLASS>
</CLASSES>
</CLASSDOMAIN>
Note that there are no limitiations on the level of nesting that these techniques support. Hopefully this gives you all of the information required to define the repository objects required to handle any kind of XML files with iFS.
null

Hi Nicole,
unfortunately we cannot add in xmlforms at runtime more fields today (with an add button for instance).
I'm sorry 
Ralf

Similar Messages

  • How to use XSLT for mapping feild names one by one to array element

    I have a XSLT case to map all the attributes feild name(not value) which has no child to the target, which is array loop.
    I give an sample below.
    source:
    <Items xmlns="http://www.example.org/sample">
    <SourceSystem>SourceSystem2573</SourceSystem>
    <TimeStamp>2010-01-17T20:54:08.234</TimeStamp>
    <Item>
    <ID>2574</ID>
    <Type>2575</Type>
    <Name>2576</Name>
    </Item>
    </Items>
    source XSD like:
         <element name="Items" type="tns:ItemsType"></element>
         <complexType name="ItemsType">
              <sequence>
                   <element name="SourceSystem" type="string" maxOccurs="1"
                        minOccurs="1">
                   </element>
                   <element name="TimeStamp" type="dateTime" maxOccurs="1"
                        minOccurs="1">
                   </element>
                   <element name="Item" type="tns:ItemType"
                        maxOccurs="unbounded" minOccurs="1">
                   </element>
    </sequence>
         </complexType>
    <complexType name="ItemType">
              <sequence>
                   <element name="ID" type="string" maxOccurs="1"
                        minOccurs="1">
                   </element>
                   <element name="Type" type="string" maxOccurs="1"
                        minOccurs="1">
                   </element>
    <element name="Name" type="string" maxOccurs="1"
                        minOccurs="1">
                   </element>
    </sequence>
         </complexType>
    target need to be like:
    <ns1:AttributesCollection>
    <ns1:Attributes>
    <ns1:fieldname>SourceSystem</ns1:fieldname>
    </ns1:Attributes>
    <ns1:Attributes>
    <ns1:fieldname>TimeStamp</ns1:fieldname>
    </ns1:Attributes>
    <ns1:Attributes>
    <ns1:fieldname>ID</ns1:fieldname>
    </ns1:Attributes>
    <ns1:Attributes>
    <ns1:fieldname>Type</ns1:fieldname>
    </ns1:Attributes>
    <ns1:Attributes>
    <ns1:fieldname>Name</ns1:fieldname>
    </ns1:Attributes>
    </ns1:AttributesCollection>
    target XSD:
    <xs:element name="AttributesCollection" type="AttributesCollection"/>
    <xs:complexType name="AttributesCollection">
    <xs:sequence>
    <xs:element name="Attributes" type="Attributes" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Attributes">
    <xs:sequence>
    <xs:element name="fieldname" minOccurs="0">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:maxLength value="100"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    I know we can use local-name() to get the tag/field name,
    but I have not idea how to get these leaf field names one by one and then mapping to every array elements.
    I tried whole day but no successful
    Does anyone have some idea?
    Thanks very much!
    Keith
    Edited by: user1065212 on 17-Jan-2010 22:50
    Edited by: user1065212 on 17-Jan-2010 22:53
    Edited by: user1065212 on 17-Jan-2010 22:59

    can you paste source xsd and the correct xml output, the current one isn't really valid
    <ID>2574</TotalNumOfItems>

  • Found character data inside an array element while deserializing

    Hi Experts,
    When I am trying to execute the webservice I am getting the following error
    Found character data inside an array element while deserializing
    Actual structure is as follows
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://10.1.2.21:8090/axis/services/InventoryManager" targetNamespace="http://10.1.2.21:8090/axis/services/InventoryManager">
    <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
    <xsd:element xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns="" name="retrieveInventoryRequest" type="retrieveInventoryRequest" />
    <xsd:complexType xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="ArrayOf_xsd_string">
    <xsd:complexContent>
    <xsd:restriction base="soapenc:Array">
    <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]" />
    </xsd:restriction>
    </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="ArrayOf_tns1_SkuQuantity">
    <xsd:complexContent>
    <xsd:restriction base="soapenc:Array">
    <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:SkuQuantity[]" />
    </xsd:restriction>
    </xsd:complexContent>
    </xsd:complexType>
    </xsd:schema>
    I know XI doesnt support array types thats why I have created my own structure as follows
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="retrieveInventory" type="InvArray" />
    <xsd:complexType name="InvArray">
    <xsd:sequence>
    <xsd:element name="pOutletList" type="xsd:string" maxOccurs="unbounded" form="qualified" />
    <xsd:element name="pSkuQuantityList" type="xsd:string" maxOccurs="unbounded" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    This webservice takes input like
    storenumber1;storenumner2....
    item1,qty;item2,qty.
    I am passing values like this to my webservice. But still I am getting the same probl

    The problem doesn't seem to be related to the XI system. Have you done any configuration at receiver Webservice to convert the string data passed through XI into string array data? I think there is a mismatch in what XI sends and receiver expects.
    Regards,
    Prateek

  • How do I programmat​ically modify array element sizes?

    Hi All,
    I have a quick question about modifying the size of array elements. Hopefully someone can help, because I am at a dead end!
    I am logging some intensities from a Fibre Array using a camera. For calibration of the system, I acquire an image from the camera, click points on the image to divide it into areas of interest. I overlay my image with a grid showing the regions of interst - for example a 4x6 array. I then have to select the fibres - or ROIs - I want to log from.
    I have a cluster type-def ( a number and a boolean) to specify the fibre number and to turn logging from that fibre on/off. I overlay an (transparent) array of this typedef over my image to correspond with the regions of interest. So here's my problem - I want to modify the dimensions of the array so each control matches my ROI. I can resize the elements by rightclicking on the elements on the frontpanel, but can't find a way to do it programmatically. The Array Property Node>>Array Element>>Bounds won't 'change to write'...thats the first thing I tried.
    Its really only important that the elements align with my ROIs - so programmatically adding in gaps/spacings would also work for me...but again I can't figure out how to do this! I've attached a screenshot of part of my image with array overlaid to show you all exactly what my problem is.
    Thanks in advance for you help,
    Dave
    PS I am running Labview 8.6 without the vision add on.
    Solved!
    Go to Solution.
    Attachments:
    Array_Overlay.png ‏419 KB

    Here's my cheat (and cheap?) way If you want to get fancy and center the numeric and boolean indicators, you could add spacers on the north and west sides, too.
    Attachments:
    ClusterSpacer.vi ‏13 KB

  • How can I display all results of a array element in a TS2.0 NumericArrayMeasurement in a single report line?

    TestStand2.0 generates for each result property ( data, limits, status...) of each array element in a NumericArrayTest an extra line in the test report.
    How can I change this to display all result properties of one array element in a single line?
    How can I reduce the spaces between the property name and its value in the report?
    How can I delete the message: "Measurement[x]" and display only the Measurement Alias (named in the Edit Limits menu)?
    This means I like to change my report from:
    Measurement[0] (ADC1):
    Data: 5000
    Status: Passed
    Measurement[1] (AD
    C2):
    To:
    ADC1: Data: 5000 Status: Passed
    ADC2: ...

    Hi,
    What you can do, is use the Override Callbacks for Modify the Report that is Generated.
    Also you can also change the report sequence 'reportgen_txt.seq' to achieve the desired affect. If you go for modifying the report sequence then copy this to the User folder and then make your changes.
    In the Resources Library you can find simple examples were the report has been modified by either using the Override Callbacks or by modifying the actual sequence.
    One other item in the Report Options you will have to set the 'Select a Report Generator for Producing the Report Body' control to use the Sequence instead of the DLL.
    Hope this helps
    Ray Farmer
    Regards
    Ray Farmer

  • XML-24521: (Error) Element not completed

    I am trying to map a collection of information to a partnerlink's input variable, using a for-each xsl node in the transformation, however I receive this error during my testing:
    Target XML is invalid for the target schema.
    <Line 14, Column 38>: XML-24521: (Error) Element not completed: 'ExecuteGloviaSP4ProcessRequest'
    At first I thought this was an issue related to the database adapter, now I'm thinking it has to do with the collection or the xsd? But we modled the xsd after the OrderBooking PO xsd...
    Here's my Transformation_1.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper
    <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
    <mapSources>
    <source type="WSDL">
    <schema location="http://Comp3/RFPOTest.wsdl"/>
    <rootElement name="invoiceCollection" namespace="http://199.244.49.95/NotesRFPOInvoice.xsd"/>
    </source>
    </mapSources>
    <mapTargets>
    <target type="WSDL">
    <schema location="http://bpel.thomasnow.com:80/orabpel/default/ExecuteGloviaSP4/ExecuteGloviaSP4?wsdl"/>
    <rootElement name="ExecuteGloviaSP4ProcessRequest" namespace="http://xmlns.oracle.com/ExecuteGloviaSP4"/>
    </target>
    </mapTargets>
    <!-- GENERATED BY ORACLE XSL MAPPER 10.1.2.0.0(build 050504) AT [FRI MAR 24 08:49:55 CST 2006]. -->
    ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://Comp3/RFPOTest.wsdl" xmlns:xsd1="http://199.244.49.95/NotesRFPOInvoice.xsd" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:ns1="http://xmlns.oracle.com/ExecuteGloviaSP4" xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" exclude-result-prefixes="xsl ns0 soap tns xsd1 plnk ns1 wsa bpws ldap xp20 ora orcl">
    <xsl:template match="/">
    <xsl:for-each select="/xsd1:invoiceCollection">
    <ns1:ExecuteGloviaSP4ProcessRequest>
    <ns1:invCCN>
    <xsl:value-of select="xsd1:invoice/xsd1:invCCN"/>
    </ns1:invCCN>
    <ns1:invVendorNbr>
    <xsl:value-of select="xsd1:invoice/xsd1:invVendorNbr"/>
    </ns1:invVendorNbr>
    <ns1:invVendorApLoc>
    <xsl:value-of select="xsd1:invoice/xsd1:invVendorApLoc"/>
    </ns1:invVendorApLoc>
    <ns1:invVendorInvoiceNbr>
    <xsl:value-of select="xsd1:invoice/xsd1:invVendorInvoiceNbr"/>
    </ns1:invVendorInvoiceNbr>
    <ns1:invTotal>
    <xsl:value-of select="xsd1:invoice/xsd1:invTotal"/>
    </ns1:invTotal>
    <ns1:invFreight>
    <xsl:value-of select="xsd1:invoice/xsd1:invFreight"/>
    </ns1:invFreight>
    <ns1:invTax>
    <xsl:value-of select="xsd1:invoice/xsd1:invTax"/>
    </ns1:invTax>
    <ns1:invDate>
    <xsl:value-of select="xsd1:invoice/xsd1:invDate"/>
    </ns1:invDate>
    <ns1:invVendorTerms>
    <xsl:value-of select="xsd1:invoice/xsd1:invVendorTerms"/>
    </ns1:invVendorTerms>
    <ns1:invUNID>
    <xsl:value-of select="xsd1:invoice/xsd1:invUNID"/>
    </ns1:invUNID>
    <ns1:invGLDist>
    <xsl:value-of select="xsd1:invoice/xsd1:invGLDist"/>
    </ns1:invGLDist>
    </ns1:ExecuteGloviaSP4ProcessRequest>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>

    Update:
    By mapping static values to the last three elements in the target schema, I was able to make this error go away.
    Here's the code:
    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper
    <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
    <mapSources>
    <source type="WSDL">
    <schema location="http://Comp3/RFPOTest.wsdl"/>
    <rootElement name="invoiceCollection" namespace="http://199.244.49.95/NotesRFPOInvoice.xsd"/>
    </source>
    </mapSources>
    <mapTargets>
    <target type="WSDL">
    <schema location="http://bpel.thomasnow.com:80/orabpel/default/ExecuteGloviaSP4/ExecuteGloviaSP4?wsdl"/>
    <rootElement name="ExecuteGloviaSP4ProcessRequest" namespace="http://xmlns.oracle.com/ExecuteGloviaSP4"/>
    </target>
    </mapTargets>
    <!-- GENERATED BY ORACLE XSL MAPPER 10.1.2.0.0(build 050504) AT [FRI MAR 24 11:02:02 CST 2006]. -->
    ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://Comp3/RFPOTest.wsdl" xmlns:xsd1="http://199.244.49.95/NotesRFPOInvoice.xsd" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:ns1="http://xmlns.oracle.com/ExecuteGloviaSP4" xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" exclude-result-prefixes="xsl ns0 soap tns xsd1 plnk ns1 wsa bpws ldap xp20 ora orcl">
    <xsl:template match="/">
    <xsl:for-each select="/xsd1:invoiceCollection/xsd1:invoice">
    <ns1:ExecuteGloviaSP4ProcessRequest>
    <ns1:invCCN>
    <xsl:value-of select="xsd1:invCCN"/>
    </ns1:invCCN>
    <ns1:invVendorNbr>
    <xsl:value-of select="xsd1:invVendorNbr"/>
    </ns1:invVendorNbr>
    <ns1:invVendorApLoc>
    <xsl:value-of select="xsd1:invVendorApLoc"/>
    </ns1:invVendorApLoc>
    <ns1:invVendorInvoiceNbr>
    <xsl:value-of select="xsd1:invVendorInvoiceNbr"/>
    </ns1:invVendorInvoiceNbr>
    <ns1:invTotal>
    <xsl:value-of select="xsd1:invTotal"/>
    </ns1:invTotal>
    <ns1:invFreight>
    <xsl:value-of select="xsd1:invFreight"/>
    </ns1:invFreight>
    <ns1:invTax>
    <xsl:value-of select="xsd1:invTax"/>
    </ns1:invTax>
    <ns1:invDate>
    <xsl:value-of select="xsd1:invDate"/>
    </ns1:invDate>
    <ns1:invVendorTerms>
    <xsl:value-of select="xsd1:invVendorTerms"/>
    </ns1:invVendorTerms>
    <ns1:invUNID>
    <xsl:value-of select="xsd1:invUNID"/>
    </ns1:invUNID>
    <ns1:invGLDist>
    <xsl:value-of select="xsd1:invGLDist"/>
    </ns1:invGLDist>
    <ns1:invICN>
    <xsl:value-of select="concat(0,&quot;&quot;)"/>
    </ns1:invICN>
    <ns1:invCurrency>
    <xsl:value-of select="concat(&quot;USD&quot;,&quot;&quot;)"/>
    </ns1:invCurrency>
    <ns1:invGLDistCode>
    <xsl:value-of select="concat(&quot; &quot;,&quot;&quot;)"/>
    </ns1:invGLDistCode>
    </ns1:ExecuteGloviaSP4ProcessRequest>
    </xsl:for-each>
    </xsl:template>
    </xsl:stylesheet>
    However I have a new error now, since I'm also mapping the Collection to the for-each XSL node.
    Target XML is invalid for the target schema.
    <Line 18, Column 1>: XML-20100: (Fatal Error) Expected 'EOF'.
    Searching...

  • Allocate array elements one at a time?

    Is there a way to allocate array elements one at a time?
    The following code will crash because the minimumLogIndices array is not allocated.
    // get all indices where cArray[i] > minimumLog
    int[] minimumLogIndices = null;
    for (int i=0; i < columns; i++)
      if ((cArray[i] > minimumLog))
        minimumLogIndices[i] = i;
    }I would like a statement like:
    minimumLogIndices[i] = new(i);but this is not allowed, of course.
    If I use ArrayList, then the elements can be added one at a time, but I cannot use int.
    null

    int[] minimumLogIndices = new int[columns];As described here:
    http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html
    [Edit] The array will, however, have "holes" in it when cArray[i] <= minimumLog, but that's inevitable if you are using an array.

  • How to set the value of an array element (not the complete array) by using a reference?

    My situation is that I have an array of clusters on the front panel. Each element is used for a particular test setup, so if the array size is three, it means we have three identical test setups that can be used. The cluster contains two string controls and a button: 'device ID' string, 'start' button and 'status' string.
    In order to keep the diagrams simple, I would like to use a reference to the array as input into a subvi. This subvi will then modify a particular element in the array (i.e. set the 'status' string).
    The first problem I encounter is that I can not select an array element to write to by using the reference. I have tried setting the 'Selection s
    tart[]' and 'Selection size[]' properties and then querying the 'Array element' to get the proper element.
    If I do this, the VI always seems to write to the element which the user has selected (i.e. the element that contains the cursor) instead of the one I am trying to select. I also have not found any other possible use for the 'Selection' properties, so I wonder if I am doing something wrong.
    Of course I can use the 'value' property to get all elements, and then use the replace array element with an index value, but this defeats the purpose of leaving all other elements untouched.
    I had hoped to use this method specifically to avoid overwriting other array elements (such as happens with the replace array element) because the user might be modifying the second array element while I want to modify the first.
    My current solution is to split the array into two arrays: one control and one indicator (I guess that's really how it should be done ;-) but I'd still like to know ho
    w to change a single element in an array without affecting the others by using a reference in case I can use it elsewhere.

    > My situation is that I have an array of clusters on the front panel.
    > Each element is used for a particular test setup, so if the array size
    > is three, it means we have three identical test setups that can be
    > used. The cluster contains two string controls and a button: 'device
    > ID' string, 'start' button and 'status' string.
    >
    > In order to keep the diagrams simple, I would like to use a reference
    > to the array as input into a subvi. This subvi will then modify a
    > particular element in the array (i.e. set the 'status' string).
    >
    It isn't possible to get a reference to a particular element within an
    array. There is only one reference to the one control that represents
    all elements in the array.
    While it may seem better to use references to update
    an element within
    an array, it shouldn't really be necessary, and it can also lead to
    race conditions. If you write to an element that has the
    possibility of the user changing, whether you write with a local, a
    reference, or any other means, there is a race condition between the
    diagram and the user. LV will help with this to a certain extent,
    especially for controls that take awhile to edit like ones that use
    the keyboard. In these cases, if the user has already started entering
    text, it will not be overwritten by the new value unless the key focus
    is taken away from the control first. It is similar when moving a slider
    or other value changes using the mouse. LV will write to the other values,
    but will not rip the slider out of the user's hand.
    To completely avoid race conditions, you can split the array into user
    fields and indicators that are located underneath them. Or, if some
    controls act as both, you can do like Excel. You don't directly type
    into the cell. You choose w
    hich cell to edit, but you modify another
    location. When the edit is completed, it is incorporated into the
    display so that it is never lost.
    Greg McKaskle

  • "Error while parsing SOAP XML payload: no element found" received when invoking Web Service

    Running PB 12.1 Build 7000.  Using Easysoap.  Error ""Error while parsing SOAP XML payload: no element found" received when invoking Web Service".  This error does not appear to be coming from the application code.  Noticed that there were some erroneous characters showing up within the header portion of the XML ("&Quot;").  Not sure where these are coming from.  When I do a find within the PB code for ""&quot;" it gets located within two objects, whereas they both reference a "temp_xml_letter".  Not sure where or what temp_xml_letter resides???   The developer of this is no longer with us and my exposure to WSDL and Web Services is rather limited.  Need to get this resolved...please.
    This is the result of the search.  Notice the extraneous characters ("&quot;"):
    dar1main.pbl(d_as400_mq_xml)
    darlettr.pbl(d_email_xml)
    ---------- Search: Searching Target darwin for 'temp_xml'    (9:52:41 AM)
    ---------- 2 Matches Found On "temp_xml":
    dar1main.pbl(d_as400_mq_xml).d_as400_mq_xml:  export.xml(usetemplate="temp_xml_letter" headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0  template=(comment="" encoding="UTF-8" name="temp_xml_letter" xml="<?xml version=~"1.0~" encoding=~"UTF-16LE~" standalone=~"yes~"?><EmailServiceTransaction xmlns=~"http://xml.xxnamespace.com/Utility/Email/EmailService" ~" xmlns:imc=~"http://xml.xxnamespace.com/IMC~" xmlns:xsi=~"http://www.w3.org/2001/XMLSchema-instance~" xmlns:root=~"http://xml.xxnamespace.com/RootTypes~" xmlns:email=~"http://xml.xxnamespace.com/Utility/Email~" xsi:schemaLocation=~"http://xml.xxnamespace.com/Utility/Email/EmailService http://dev.xxnamespace.com/Utility/Email/EmailService/V10-TRX-EmailService.xsd~"><EmailServiceInformation><EmailServiceDetail __pbband=~"detail~"><ApplicationIdentifier> applicationidentifier </ApplicationIdentifier><AddresseeInformation><AddresseeDetail><Number> number </Number></AddresseeDetail></AddresseeInformation><EmailMessageInformation><Ema
    darlettr.pbl(d_email_xml).d_email_xml:  export.xml(usetemplate="temp_xml_letter" headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0  template=(comment="" encoding="UTF-8" name="temp_xml_letter" xml="<?xml version=~"1.0~" encoding=~"UTF-16LE~" standalone=~"yes~"?><EmailServiceTransaction xmlns=~"http://xml.xxnamespace.com/Utility/Email/EmailService" ~" xmlns:imc=~"http://xml.xxnamespace.com/IMC~" xmlns:xsi=~"http://www.w3.org/2001/XMLSchema-instance~" xmlns:root=~"http://xml.xxnamespace.com/RootTypes~" xmlns:email=~"http://xml.xxnamespace.com/Utility/Email~" xsi:schemaLocation=~"http://xml.xxnamespace.com/Utility/Email/EmailService http://dev.xxnamespace.com/Utility/Email/EmailService/V10-TRX-EmailService.xsd~"><EmailServiceInformation><EmailServiceDetail __pbband=~"detail~"><ApplicationIdentifier> applicationidentifier </ApplicationIdentifier><AddresseeInformation><AddresseeDetail><Number> imcnumber </Number></AddresseeDetail></AddresseeInformation><EmailMessageInformation><Ema
    ---------- Done 2 Matches Found On "temp_xml":
    ---------- Finished Searching Target darwin for 'temp_xml'    (9:52:41 AM)

    Maybe "extraneous" is an incorrect term.  Apparantly, based upon the writeup within Wiki, the parser I am using does not interpret the "&quot;"?  How do I find which parser is being utilized and how to control it?
    <<<
    If the document is read by an XML parser that does not or cannot read external entities, then only the five built-in XML character entities (see above) can safely be used, although other entities may be used if they are declared in the internal DTD subset.
    If the document is read by an XML parser that does read external entities, then the five built-in XML character entities can safely be used. The other 248 HTML character entities can be used as long as the XHTML DTD is accessible to the parser at the time the document is read. Other entities may also be used if they are declared in the internal DTD subset.
    >>>

  • Problem in assigning value to an array element

    hi all
    in the following prog i am not able to assign the value to the array element
    i am not getting why it is giving me error
    //my program is as follows
    public class ArrayTest
         static int [] intArray = new int[5];
         static int [] intArray1 = new int[1];
         intArray1[0] = 5; // this line gives error
         static char [] charArray = new char[5];
         public static void main(String args[])
              System.out.println(charArray);
              intArray1 = intArray;
    }thanx in advance as usual

    The problem is that you try to execute code outside a method. This can be only done in form of a variable declaration or as a static initilization block which will be executed once when the class is loaded:public class ArrayTest
         static int [] intArray = new int[5];
         static int [] intArray1 = new int[1];
         static char [] charArray = new char[5];
         static {
              intArray[0] = 5;
         public static void main(String args[])
              System.out.println(charArray);
              intArray1 = intArray;
    }

  • Error in Parsing XML using fx:XML/ [Error- 1090: XML parser failure: element is malformed]

    Hi All,
    I am getting error while loading XML in <fx:XML> tag.
    Error:
    TypeError: Error #1090: XML parser failure: element is malformed.
    MXML Code:
    <fx:Declarations>
    <fx:XML id="xmlSource2" source="sample.xml"/>
    </fx:Declarations>
    Sample XML Used: (sample.xml)
    <?xml version="1.0" encoding="UTF-8"?>
    <File>
        <Chemical id="000035676" displayFormula="C39-H45-N2-O6"
            displayName="Dimethyltubocurarine">
            <NameList>
                <NameOfSubstance>
                    Dimethyltubocurarine
                    <SourceList>
                        <Source>MESH</Source>
                    </SourceList>
                </NameOfSubstance>
                <SystematicName>
                    Tubocuraranium, 6,6',7',12'-tetramethoxy-2,2',2'-trimethyl-
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </SystematicName>
                <Synonyms>
                    Dimethyltubocurarine
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </Synonyms>
                <Synonyms>
                    Dimethyltubocurarinium
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </Synonyms>
                <Synonyms>
                    Methyltubocurarinum
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </Synonyms>
            </NameList>
            <NumberList>
                <CASRegistryNumber>
                    35-67-6
                    <SourceList></SourceList>
                </CASRegistryNumber>
                <RelatedRegistryNumber>
                    518-26-3 (iodide.hydriodide)
                    <SourceList>
                        <Source>MESH</Source>
                    </SourceList>
                </RelatedRegistryNumber>
            </NumberList>
            <ClassificationList>
                <ClassificationCode>
                    Neuromuscular nondepolarizing agents
                    <SourceList>
                        <Source>MESH</Source>
                    </SourceList>
                </ClassificationCode>
            </ClassificationList>
            <FormulaList>
                <MolecularFormula>
                    C39-H45-N2-O6
                    <SourceList>
                        <Source>NLM</Source>
                    </SourceList>
                </MolecularFormula>
            </FormulaList>
            <FormulaFragmentList></FormulaFragmentList>
            <NoteList></NoteList>
            <LocatorList>
                <FileLocator
                    url="http://cnetdb.nci.nih.gov/cgi-bin/srchcgi.exe?DBID=****3&SFMT=****_basic%2F10%2F0%2F0&TYPE=search&SRCHFORM=passthru%3D%Asrchform%3ASRCH%3A&FIELD_001=[CAS]35-67-6&#38;GoButton=Search&#38;FIELD_001_CTL=EXPR&#38;FIELD_908=&#38;FIELD908_CTL=HASABSTRACT&#38;FIELD_903=&#38;FIELD_903_CTL=YEARFORE&#38;DOCPAGE=10">CANCERLIT</FileLocator>
                <FileLocator
                    url="http://toxnet.nlm.nih.gov/cgi-bin/sis/search/r?dbs+toxline:@and+@term+@rn+35-67-6+@term+@org+DART">DART/ETIC</FileLocator>
                <FileLocator
                    url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=search&db=PubMed&term=35-67-6[ECNO]+OR+&#34;~&#34;[MH]">MEDLINE</FileLocator>
                <FileLocator
                    url="http://www.nlm.nih.gov/cgi/mesh/2K/MB_cgi?term=35-67-6&rn=1">MESH</FileLocator>
                <FileLocator
                    url="http://toxnet.nlm.nih.gov/cgi-bin/sis/search/r?dbs+toxline:@term+@rn+35-67-6+@OR+@mh+""">TOXLINE</FileLocator>
            </LocatorList>
        </Chemical>
    </File>
    Also, when I am using HttpService to load same XML I am getting no such error!!
    <s:HTTPService id="employeeService"
                           url="sample.xml"
                           result="employeeService_resultHandler(event)"
                           fault="employeeService_faultHandler(event)"/>
    Please help!!
    Thanks.
    Abhinav

    I think url in XML is creating problem here.
    <FileLocator
                    url="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=search&db=PubMed&term=23-95-0[ECNO]+OR+&#34;~&#34;[MH]">MEDLINE</FileLocator>
    Is there any way to parse this XML using <fx:XML/> ??
    Thanks.

  • How to change the color of Numeric array elements (seperatel​y) programmat​ically using property node??

    For example, i have 3 numeric controls, controlling 3 numeric array elements (Numeric control is connected directly to indicator). Then if i change value in numeric control 1, then the array element No.1 of numeric array should turn red when value exceeds 5. Similarly when i change num control 2 then element 2 of array should turns red when value in num control 1 exceeds 10. Similarly for 3rd element. In other words, i want to control the property of array elements individually through seperate numeric control.
    I have done it for single numeric indicator.i.e. when i change numeric control's values then a single numeric indicator changes values and color (Numeric text BG property) but with array, the color of whole array changes but i want to change color of singles element of array.
    Please help thanks.  
    Solved!
    Go to Solution.

    ...or replace the numerics with clusters that have a numeric and a color box. make the background of the nmeric transparent and slide the color box behind the numeric. Use the color box to control the background color.
    Other alternatives would use a cluster instead of the array or if your req's are really weird "roll-your-own" with a Picture control.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How to set an array element in an object type of array??

    Hi,
    I have set attribute as follow:
    Color[] colors;
    Color[] colors = new Color[20];
    colors[0] = "Red";
    colors[1] = "blue";I can't compile this code. It said:
    "Incompatible type -found java.lang.String but expected Colors
    Could you tell me how to set an array elements when the array type is an object?

    in your case, the array shouldn't be Color[] but String[] since you re intending to put strings into it
    by the way, you could also use a hashmap to map a string to a color:
    HashMap<String, Color> hm = new HashMap<String, Color>();
    hm.put("Red", Color.RED);
    hm.put("Blue", Color.BLUE);
    etc.

  • "In initializer for 'mxmlContent', type Object is not assignable to target Array element type..."

    Hi all,
    So I've have built an application on flash builder 4.5 using Christophe Coenraets' tutorial "Building an EmployeeDirectory" (http://www.adobe.com/devnet/flex/articles/employee-directory-android-flex.html#articlecont entAdobe_numberedheader).
    I'm getting this error message "In initializer for 'mxmlContent', type Object is not assignable to target Array element type mx.core.IVisualElement." and then the debugger highlights my code this line of my code "</s:List>" in my EmployeeDetails.mxml file. This started after I coded Part 5, Step 2 "Integrating with the Device Capabilities: Triggering the Actions".   The rest of the code debugged fine.
    I think it relates to Christophe's note "Note: Make sure you import spark.events.IndexChangeEvent (and not mx.events.IndexChangedEvent) for this code to compile.".  I don't know where to place this
    " import spark.events.IndexChangeEvent;" line of code. 
    Any help?  Tks in advance..
    Any help would be greatly appreciated.  Thanks

    You have a DataGrid directly inside a State element. Perhaps wrap it in an AddChild element?
    More information on using states can be found here:
    http://livedocs.adobe.com/flex/3/html/help.html?content=using_states_1.html

  • Read part of an array element

    Hello All.
    As indicated in the title, I am trying to read part of an array element.
    What I'm doing is reading values from a LeCroy scope using a "write" than "read" I have returned the read values into an array but the issue is the scope returns a value "1, 52.33E-3"
    I simply want the element to be 52.33 that way I can use that for other calculations.
    For example my array is.
    "1, 34.334E-3"
    "1, 53.343E-3"
    "1, 143.232E-"
    And I want it to be
    34.334
    53.343
    143.232
    Thanks!
    Solved!
    Go to Solution.

    Another option is to use Spreadsheet String to Array and use the comma as the delimiter.  It can actually change your string into an array of numbers.  Then you just index out the number you want.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

Maybe you are looking for

  • Corrupt CAB File

    Hello, I hope I have placed this in the correct forums here on TechNet. I have a corrupt CAB file and am looking on ways to correct it. We use WINRAR to open CAB files. When I attempt to open it via WINRAR I am being told "The archive is either in un

  • Submit MMBE

    Hello All,        I created a program ZMMBE with the same selection-screen as of standard Program RMMMBEST (MMBE Transaction ). Now I use a Submit statement in the ZMMBE Program as follows : *EPORT RMMMBEST NO STANDARD PAGE HEADING MESSAGE-ID M3. *  

  • UDL button inactive

    According to pg. 22 of the Logic Express Reference Manual, that little rectangle in the upper left corner of each local menu is the UDL button, which I would assume stands for Up Display Level. It doesn't do anything noticeable in any of my window le

  • JNI, invocation-API, JNI_CreateJavaVM

    Hi, I want to compile 'invoke.c' from the internet and get a compiler-error. Does anybody know, what to do? Thanks Ully c-code: #include "jni.h" jint res; JavaVM *jvm; JNIEnv *env; JDK1_1InitArgs vm_args; res=JNI_CreateJavaVM( &jvm, &env, &vm_args );

  • Mail app stays in background until selected again

    Upon initiating Mail, it most times (but not always) stays in the background when it should be the active window (sometimes even when only the Desktop is what is active). I can make it come to the foreground by clicking the dock icon again, but is th