Problem with namespace prefix
Dear all,
I'm using code generated by NW Developer Studio 2004s for use inside Portal components acting as a web service consumer. The problem is that the code generated includes a namespace prefix for each element in the body of the message, but ECC (ERP 6.0) doesn't like the namespace prefixes (the namespace was not recognised by the ECC mapping tool.)and throws back a DeliveryException.
The SOAP message created by the generated NWDS code is:
<?xml version="1.0" encoding="UTF-8" ?>
- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wn3="http://www.w3.org/1999/XMLSchema" xmlns:wn2="http://www.w3.org/2000/10/XMLSchema" xmlns:wn1="http://www.w3.org/2001/XMLSchema" xmlns:wn0="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wn4="urn:sap-com:document:sap:rfc:functions" xmlns:tns="urn:sap-com:document:sap:rfc:functions">
- <SOAP-ENV:Body>
- <wn4:Z_APPOINTMENT_GET_JCO_ORG>
<wn4:DATE_FROM>2007.01.01</wn4:DATE_FROM>
<wn4:DATE_TO>2008-02-02</wn4:DATE_TO>
<wn4:USERID>EGREO</wn4:USERID>
</wn4:Z_APPOINTMENT_GET_JCO_ORG>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I've had a very good look around the generated code - the serializers for creating the soap request - but could not find what exactly might be changed to leave off the prefixes.
I am using portal server 2004s
Many thanks for any advice/help
Reza
I find out how should I do that.
/Reza
Similar Messages
-
Problems with namespace XML Parsing of ABAP PI 7.0 Integration Engine
Hi,
I discovered the following problem.
The customer sends a SOAP message with is forwarded through a SOAP Adapter in the integration engine.
The structure of the message is very simple:
<Envelope>
<Body>
<ORDERS05>...</ORDERS05>
</Body>
</Envelope>
The customer adds the namespace information a special way:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope">
<Body>
<orders05 xmlns="">...</orders05>
</Body>
<Envelope>
Here the namespaces is declared in the first element. It should be inherited into all child elements. The 'orders05' should not have the namespace ' xmlns="http://schemas.xmlsoap.org/soap/envelope" ', therefore the namespace is overwritten with ' xmlns="" '. However I don't know if this is a correct xml statement, the SAP system did not understand this.
The integration throws an error which is stated in the message in the adapter engine:
2008-11-06 17:31:44 Fehler SOAPFault empfangen vom Integration Server. ErrorCode/Category: XIProtocol/ITEM_MISSING; Params: /@mustUnderstand, ST: ST_XMS_MSGHDR30_RM; AdditionalText: Attribut 'mustUnderstand' erwartet; ApplicationFaultMessage: ; ErrorStack: Das XML-Element /@mustUnderstand fehlt im SOAP-Message Header (SAP XI Extension) Attribut 'mustUnderstand' erwartet
2008-11-06 17:31:44 Fehler Fehler beim Übertragen der Message zum Endpunkt http://kas052.hauni.koerber.de:8036/sap/xi/engine?type=entry über die Verbindung SOAP_http://sap.com/xi/XI/System. Grund: com.sap.aii.af.ra.ms.api.RecoverableException: Received HTTP response code 500 : Error during parsing of SOAP header
If I changed the SOAP message to the common format, it is accepted by the integration engine.
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope">
<SOAP:Body>
<orders05>...</orders05>
</SOAP:Body>
</SOAP:Envelope>
Here the namespace ' xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope" ' is defined with a prefix and assigned to the elements 'envelope' and 'body'. The 'orders05' element has no namespace.
However due to the xml syntax both messages are the same, so why the integration engine handle the messages different?
Best regards,
Nils KlothThe valid SOAP format supported by XI is as follows
<SOAP:Envelope
xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<m:MessageTypeName xmlns:m="Some-URI">
<Price>34.5</Price>
</m:MessageTypeName>
</SOAP:Body>
</SOAP:Envelope>
Ur sender system is not sending the data in correct Soap format and thats the cause of message rejection. The option you have to use the Soap adapter in "no soap" mode.
Regards,
Prateek -
Using selectSingleNode with namespace prefixes like "xmlsns:xsi"???
I'm having a little trouble manipulating a document with the xmlparserv2 library. The XMLNode.selectSingleNode method does not seem to work when the attribute in question is part of a namespace. For example, I have a document that has a schema declaration like so:
****CUT****
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="..\XMLStressTestCase.xsl"?>
<XMLTestCase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../XmlStressTestCase.xsd" Name="Engenious (Switch) Eligible Test" MaxTime="30000">
****CUT****
If I create an XMLDocument (myDoc) from the file in question and try to execute the following line of code
Node n = myDoc.selectSingleNode("@xmlns:xsi");
I get the following error
" Namespace prefix 'xmlns' used but not declared."
In google I found a thread (http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&threadm=ugJD7hJ3BHA.2236%40tkmsftngp02&rnum=2&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26q%3Dxmlns%2B%252B%2BselectSingleNode%26sa%3DN%26tab%3Dwg)that points to setProperty/selectionNamespaces
as qa possible way to resolve the problem in the MSXML implementation. It looks like the oracle XDK has the same method, but I can't seem to find any documentation on the values that are supported for that method (http://otn.oracle.com/docs/tech/xml/xdk_java/doc_library/Production9i/doc/java/javadoc/oracle/xml/parser/v2/XMLNode.html#setProperty(java.lang.String, java.lang.Object))
Any help? Should I be declaring the namespace in my XML someplace?In fact it used to be possible to set a NamespacePrefixMapper that controls the namespace prefixes in the JAXB 2.0 from Glasfish like this:
marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", new MyNamespacePrefixMapper());
When using the Java 6 implementation of JAXB this coded will throw an exception. Has anyone got a clue how to control the namespace prefix in Java 6?
Thanks,
Ager -
Namespace Problem? Namespace prefix used but not declared.
Hello Guru's,
I am new to XSL templates, while genrating XML publisher report with these template, I am getting below "namespace" error:
If I remove the "set:"/"str:" expressions from the template, it works fine. Is there anything syntactically wrong in the expression? but not getting the results
Getting "Caused by: oracle.xdo.parser.v2.XMLParseException: Namespace prefix 'str' used but not declared." error while using this code
<xsl:call-template name="str:generate-string">
<xsl:with-param name="text" select="'Â '"/>
<xsl:with-param name="count" select="30"/>
</xsl:call-template>
Getting "Caused by: oracle.xdo.parser.v2.XMLParseException: Namespace prefix 'set' used but not declared." error while using this code
<xsl:template name="distinct">
<xsl:param name="nodes" select="/.."/>
<xsl:param name="distinct" select="/.."/>
<xsl:choose>
<xsl:when test="$nodes">
<xsl:call-template name="distinct">
<xsl:with-param name="distinct" select="$distinct | $nodes[1][not(. = $distinct)]"/>
<xsl:with-param name="nodes" select="$nodes[position() > 1]"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="$distinct" mode="set:distinct"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
I would appreciate any help in this regard.
SADeclare them in the namespace :)
<?xml version='1.0' encoding='windows-1252'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="distinct">
<xsl:param name="nodes" select="/.."/>
, </xsl:stylesheet> -
Extracting XML values with namespace prefixes
Hint: I put this topic in "SQL and PL/SQL" but that was a bad idea, I think.
Hi!
I have a XML file:<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/styl.xsl"?>
<wnio:Deklaracja
xmlns:adr="http://crd.gov.pl/xml/schematy/adres/2008/05/09/"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:inst="http://crd.gov.pl/xml/schematy/instytucja/2008/05/09/"
xmlns:meta="http://crd.gov.pl/xml/schematy/meta/2008/05/09/"
xmlns:oso="http://crd.gov.pl/xml/schematy/osoba/2008/05/09/"
xmlns:str="http://crd.gov.pl/xml/schematy/struktura/2009/11/16/"
xmlns:wnio="http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
xsi:schemaLocation="http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/ http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/schemat.xsd">
<wnio:OpisDokumentu><str:CID>[email protected]</str:CID><meta:Identyfikator typIdentyfikatora="idFormularza"><meta:Wartosc>InstytucjaPubliczna/Deklaracja podatku od środków transportowych DT-1</meta:Wartosc></meta:Identyfikator></wnio:OpisDokumentu>
<wnio:Naglowek>
<wnio:KodFormularza kodSystemowy="DT-1(3)"/>
<wnio:WariantFormularza>3</wnio:WariantFormularza>
<wnio:Rok>2008</wnio:Rok>
<wnio:ObowiazekSkladaniaDeklaracji>1</wnio:ObowiazekSkladaniaDeklaracji>
<wnio:MiejsceSkladania/>
</wnio:Naglowek>
<wnio:Podatnik>
<wnio:OsobaPrawna>
<wnio:NIP>345678901</wnio:NIP>
<wnio:PelnaNazwa>Testowa Instytucja Publiczna</wnio:PelnaNazwa>
<wnio:NazwaSkrocona/>
<wnio:REGON>234512345</wnio:REGON>
</wnio:OsobaPrawna>
<wnio:AdresSiedzibyZamieszkania>
<wnio:KodKraju>PL</wnio:KodKraju>
<wnio:Wojewodztwo>ŚLĄSKIE</wnio:Wojewodztwo>
<wnio:Powiat>Katowice</wnio:Powiat>
<wnio:Gmina>Katowice (gmina miejska)</wnio:Gmina>
<wnio:Ulica>ul. Mikołowska</wnio:Ulica>
<wnio:NrDomu>100</wnio:NrDomu>
<wnio:NrLokalu>924</wnio:NrLokalu>
<wnio:Miejscowosc>Katowice (miasto)</wnio:Miejscowosc>
<wnio:KodPocztowy>40-065</wnio:KodPocztowy>
<wnio:Poczta>Katowice</wnio:Poczta>
</wnio:AdresSiedzibyZamieszkania>
</wnio:Podatnik>
<wnio:PozycjeSzczegolowe>
<wnio:D.1>
<wnio:P_22/>
<wnio:P_23/>
</wnio:D.1>
<wnio:D.2>
<wnio:P_28/>
<wnio:P_29/>
</wnio:D.2>
<wnio:P_82/>
<wnio:P_83/>
</wnio:PozycjeSzczegolowe>
<wnio:Zalacznik_DT-1A>
<wnio:P_1/>
<wnio:P_2/>
<wnio:P_22>1</wnio:P_22>
</wnio:Zalacznik_DT-1A>
<wnio:Zalacznik_DT-1A>
<wnio:P_1/>
<wnio:P_2/>
<wnio:P_22>3</wnio:P_22>
</wnio:Zalacznik_DT-1A>
</wnio:Deklaracja>and an overloaded function:
function dodaj_DT1_z_xml(p_dt1 in out nocopy XMLType) return number as
r_dt1 POD_SRTR_DT1%rowtype;
r_dt1a POD_SRTR_DT1A%rowtype;
r_sdek POD_SRTR_DEKLARACJE%rowtype;
l_wariantDT1 number(2);
l_xosf XMLType;
l_xosp XMLType;
l_xadr XMLType;
l_xszcz XMLType;
l_zal XMLType;
l_z XMLType;
l_zno pls_integer;
l_xml XMLType;
l_ns varchar2(10);
-- xmlns:wnio="http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/"
begin
if --p_dt1.existsNode('/wnio:Deklaracja')=0 and
p_dt1.existsNode('/Deklaracja','xmlns:wnio="http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/"')=0
then return -2; end if;
if p_dt1.existsNode('/wnio:Deklaracja')=1 then
l_ns := 'wnio:';
end if;
if p_dt1.existsNode('/'||l_ns||'Deklaracja')=0 then return -2; end if;
if p_dt1.existsNode('/'||l_ns||'Deklaracja/'||l_ns||'Naglowek')=0 then return -3; end if;
if p_dt1.existsNode('/'||l_ns||'Deklaracja/'||l_ns||'Podatnik')=0 then return -4; end if;
if p_dt1.existsNode('/'||l_ns||'Deklaracja/'||l_ns||'PozycjeSzczegolowe')=0 then return -5; end if;
return 1;
end;
function dodaj_DT1_z_xml(p_dt1 in out nocopy CLOB) return number is
l_xml XMLType;
begin
l_xml := XMLType(p_dt1);
return dodaj_DT1_z_xml(l_xml);
end dodaj_DT1_z_xml;I run the code:declare
v_clob CLOB;
v_out number;
begin
SELECT dok_content INTO v_clob FROM EPUAP.epuap_dokumenty WHERE dok_id=13;
v_out := POD_PCK_SRTR_DT1.DODAJ_DT1_Z_XML(v_clob);
DBMS_OUTPUT.put_line(v_out);
end;the output is -2. What must I change to find the node "wnio:Deklaracja"? I'm newbie in XML and namespaces :(
Help me, please...
Oracle version is 10.2.0.3Hi,
If you declare a namespace prefix then corresponding elements must be qualified.
So, either do :
p_dt1.existsNode('/wnio:Deklaracja','xmlns:wnio="http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/"')or use a default namespace declaration :
p_dt1.existsNode('/Deklaracja','xmlns="http://test.epuap.gov.pl/FeResourceServlet/wzor_lokalny/InstytucjaPubliczna/Deklaracja_DT/"')BTW, could you explain what are you trying to accomplish? -
Problem with namesapce Prefix in XSLT transform
Hi all,
I have the following XML as source:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="C:\Documents and Settings\i034461\Desktop\TestConv.xslt"?>
<ns0:Proxy_Mail_MT xmlns:ns0="http://abhi.com">
<Sender>A</Sender>
<Receiver>B</Receiver>
<Content>test</Content>
<Content>test1</Content>
</ns0:Proxy_Mail_MT>
target:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:Mail xmlns:ns1="http://sap.com/xi/XI/Mail/30">
<From>A</From>
<To>B</To>
<Content>*Hi B A test Thanks A</Content>
</ns1:Mail>
I use a XSL transform to achieve the same. The XSL file is
as
<?xml version="1.0" encoding="UTF-8"?>
<?altova_samplexml C:\Documents and Settings\i034461\Desktop\test.xml?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<ns1:Mail xmlns:ns1 = "http://sap.com/xi/XI/Mail/30">
<From>
<xsl:value-of select="concat('hi' , ' ' , Proxy_Mail_MT/Sender)"/>
</From>
<To>
<xsl:value-of select="concat('Thanks' , ' ' , Proxy_Mail_MT/Receiver)"/>
</To>
<content>
<xsl:for-each select="Proxy_Mail_MT/Content">
<xsl:variable name="ConCnt" select="." />
<xsl:value-of select="concat($ConCnt , ' ' )"/>
</xsl:for-each>
</content>
</ns1:Mail>
</xsl:template>
</xsl:stylesheet>
I face the Following issue:
My Source XML Root Document has a namespace Prefix
ns0:Proxy_Mail_MT
I would like to have my template match as the root set as (/).
Unfortunately, the XPATH expression for the elements ( say Proxy_Mail_MT/Receiver ) fails beacuse of the NAMESPACE Prefix "ns0".
Can anyone suggest me how this namespace prefix can be used in the XPATH expression or is there any other possible solution.
Any help would be appreciated.
Regards
AbhishekHi,
you need to add the namespace to your header. It will look like this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://abhi.com" exclude-result-prefixes="ns0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<ns1:Mail xmlns:ns1="http://sap.com/xi/XI/Mail/30">
<From>
<xsl:value-of select="concat('hi' , ' ' , /ns0:Proxy_Mail_MT/Sender)"/>
Hope it helps
Kind regards
Mikkel -
Xsl transformation from version1 to version2, problem with namespaces
Guys!
In my current project we need to have an interface in Oracle ESB which is build on lets say a wsdl version1 and an interface build on wsdl version2.
In esb i need to define a transformation which will transform the request on version1 to version2. Because the xsd for the operation is really huge (+1000 items) i made some templates in xsl to do most of the work, works great..only i'm having a few issues now.
To re-order items from source to target i do the next in a template
<nameGroep>
<xsl:copy-of select="andhere the xpath from source"/>
<xsl:copy-of select="andhere the xpath from source"/>
<xsl:copy-of select="andhere the xpath from source"/>
</nameGroep>The only problem from the xsl:copy-of is, it also copies the namespace along. So if my target document uses an other namespace, it fails.
To correct this i hoped i could make use of <xsl:namespace-alias> but this doesn't work on a literal/text tag (hope i explain this correct).
Other option is, for every element do something like
[code[
<elementname>
<xsl:value-of select=""/>
</elementname>
but this will create the <elementname> always in the target whether or not it's in the source. You could do a check to see if it's in the source, but this isn't a solution because then i need to check for every 1000+ item in the source document, so..we skip this idea.
So i reach a point where im still searching for a good solution and hoped you guys could help me a bit with it.
If the problem isn't explain well please say so, and i will add extra info.Guys!
In my current project we need to have an interface in Oracle ESB which is build on lets say a wsdl version1 and an interface build on wsdl version2.
In esb i need to define a transformation which will transform the request on version1 to version2. Because the xsd for the operation is really huge (+1000 items) i made some templates in xsl to do most of the work, works great..only i'm having a few issues now.
To re-order items from source to target i do the next in a template
<nameGroep>
<xsl:copy-of select="andhere the xpath from source"/>
<xsl:copy-of select="andhere the xpath from source"/>
<xsl:copy-of select="andhere the xpath from source"/>
</nameGroep>The only problem from the xsl:copy-of is, it also copies the namespace along. So if my target document uses an other namespace, it fails.
To correct this i hoped i could make use of <xsl:namespace-alias> but this doesn't work on a literal/text tag (hope i explain this correct).
Other option is, for every element do something like
[code[
<elementname>
<xsl:value-of select=""/>
</elementname>
but this will create the <elementname> always in the target whether or not it's in the source. You could do a check to see if it's in the source, but this isn't a solution because then i need to check for every 1000+ item in the source document, so..we skip this idea.
So i reach a point where im still searching for a good solution and hoped you guys could help me a bit with it.
If the problem isn't explain well please say so, and i will add extra info. -
Mapping: Problem with Namespaces while testing
Hello,
can anyone tell me what's the thing with the namespace in xml-messages for testing?
My problem is the following: I have exported a test-xml-file from a mapping in another namespace (where everything is correct) and now i want to import this xml-file in my new mapping (another namespace).
I found out that i have to change the given "xmlns:ns" attribute from the original namespace to the software component version (!!!), in which my new mapping is. Otherwise the file can't be imported correctly in my new mapping.
Can you tell me the cause for this curious case, so that i don't have to search for my problem the next time...?
Thanks in advance,
best regards, LeoHi Suraj,
Your answer is not quite plain to me, sorry.
Perhaps you can tell my with an example. My original xml looks like the following:
<?xml version="1.0" encoding="utf-8"?>
<ns:VDA490500 xmlns:ns="http://mynamespace.com/basis">
<S511>
<SATZART>511</SATZART>
<VNR>02</VNR>
<KNDNR>1234</KNDNR>
</S511>
<S519>
<SATZART>519</SATZART>
</S519>
</ns:VDA490500>
Now the namespace of my new mapping is another, and i only accomplished my problem by changing it to
<?xml version="1.0" encoding="utf-8"?>
<ns:VDA490500 xmlns:ns="<b>NewSoftwareComponentVersion</b>">
<S511>
All other trials didn't work.
Can you show me what you meant, and perhaps can you tell me why?
Thank you,
Leo -
OSB 11g - Issue with namespace prefix
Hi,
I have a requirement that , whenever I call my target system through business service, always the prefix for a namespace should be 's'.
I added namespace as -
s : http://www.starstandards.org/STAR
When I create request message before calling the Business service, the prefix is -
star:http://www.starstandards.org/STAR
In OSB 11g, can we control prefix for a namespace?
Thanks in AdvanceDisable "Use Chunked Streaming Mode" property in business service configuration and test again. By default, this setting remains enabled.
Regards,
Anuj -
XSL mapper problem with namespace defined in the element
Hi.
Using XSL Mapper from JDeveloper, I have imported one xsl that now is working and it generates an error. The source for the mapper is:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns4="http://sample.com" xmlns:ns3="http://sample2.com" version="1.0">
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
And I get
Line Number:(25) : Error: "soapenv:Envelope" Element not Found in Target Schema
But, if I change a little bit the definition, I solve the error.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns4="http://sample.com" xmlns:ns3="http://sample2.com" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" version="1.0">
<xsl:template match="/">
<soapenv:Envelope >
Why is this happening? It will make a lot of work trying to change all the old transformations that are well formed according with w3 specifications.
Thanks in advance.
RegardsHi,
Perhaps it would help if you post your XML file. -
Hi all,
I am processing a EDI inbound transactions,using EDI x12 over internet business protocol. I uploaded one XSD file with a name space, but while it cuming to B2B-INQUEUE after processing the inbound transactions , its changing the name space.
Regards
SuniHi Suni,
Please generate the XSD for the required ecs file from the document editor. While generating the xsd from ecs file, ensure the select the option for "save guideline" and then use these ecs and xsd files while modelling
Regards,
Dheeraj -
Xpath to access a node - problems with namespace
Iam using xpath to get to a node of a DOM doc, it works fine as long as I don't set the DocumentBuilderFactory to be namespace aware. Do I have to change the xpath to be different if the facotory is namespace aware?
Thanksguys ?
-
Problem with variadic macros, Forte 6U2
The following code demonstrates a problem with namespace qualifiers used in variadic macros. The workaround (if you want to call it that) is to use triple colons as the scope resolution operator inside certain cases of variadic macros. The following piece of very contrived code demonstrates the problem. If you look at preproccessed output, its pretty clear that the variadic macro eats colons.
unix experiments/C++/badmacros> cat badmacros.cpp
/*************** badmacros.cpp *******************/
#define INTERFACE(ifc) virtual public ifc
#define EXTENDS(...) __VA_ARGS__
namespace foo {
namespace bar {
class Interface {};
}//namespace bar
}//namespace foo
#if !defined(HACK_TO_FIX)
class DerivedInterface : EXTENDS( INTERFACE(::foo::bar::Interface) )
#else
class DerivedInterface : EXTENDS( INTERFACE(:::foo:::bar:::Interface) )
#endif
int main(int argc, char* argv[]){}
/*************** badmacros.cpp *******************/unix experiments/C++/badmacros> CC badmacros.cpp
"badmacros.cpp", line 18: Error: Identifier expected instead of ":".
1 Error(s) detected.
unix experiments/C++/badmacros> CC -DHACK_TO_FIX badmacros.cpp
unix experiments/C++/badmacros>OK - that is good to hear. OTOH, I think I've found another one. The following code builds properly whether or not DEFINE_IN_CLASS_BODY is set on both g++ 3.0.1 and on the online comeau C++ compiler. However, in Forte 6U2, if DEFINE_IN_CLASS_BODY is not set, compilation fails.
unix experiments/C++/over_template> cat over_template.cpp
#if defined(DEFINE_IN_CLASS_BODY)
class Factory {
public:
void * create() const {
return new int;
template<typename T> T * create() const {
return reinterpret_cast<T*>(create());
#else
class Factory {
public:
void * create() const;
template<typename T> T * create() const;
inline void * Factory::create() const {
return new int;
template<typename T> inline T * Factory::create() const {
return reinterpret_cast<T*>(create());
#endif
int main(int argc, char * argv[]){}unix experiments/C++/over_template> \rm -rf SunWS_cache/; CC over_template.cpp
"over_template.cpp", line 30: Error: Factory::create() const already had a body defined.
1 Error(s) detected.
unix experiments/C++/over_template> \rm -rf SunWS_cache/; CC -DDEFINE_IN_CLASS_BODY over_template.cpp
This last compile works fine. Using Forte6U2, all the latest patches installed. -
Problems with the OPC Connector for older OPC DA servers?
Hello,
we are developing a solution involving OPC data access and want to utilize xMII as a gateway between the OPC server and our application. The xMII installation we use works fine with three different demoservers we connected, even when accessing them remotely.
When first trying to connect to our real datasource, we encountered problems. The namespace was not browsable from within the xMII Query Template editor. A taglist was given though, but the tags did not give proper results. The general log stated, that an "invalid server" was being used.
Other OPC clients which are designed for diagnostic use did not have any problems with namespace browsing or accessing the data in our server, so the problem was limited to the use of xMII. Reconfiguring the namespace of the OPC server led to data access working in xMII, but the namespace is still not browsable from within xMII.
We use a Simatic NET OPC Server, which states it fulfills OPC DA specification 1.0A and SAP xMII 11.5.1 with an OPCDatasource2_5_0_4beta Connector. The question is, if our problems could arise from our use of such an old OPC specification in the server? It is stated that the DataSource Connector works with "any OPC server", but as I understand it the actual specification is OPC DA 3.0, which would be quite a distance in versions.
Thanks in advance for any useful hints!
Andreas GösslingHello Martin,
thanks a lot for the answer! This is exactly the information I need to explain my senior staff members why it is not my fault.
Luckily, I found a stable state for cooperation between my components. Now I have the validation that this state must not be altered by others.
Thanks again!
Andreas -
XSLT Mapping - problem with prefixes when calling template
Hi all,
I am having a problem with using an XSLT mapping in XI to combine various fields from 2 input messages of different structures into a single output message. I understand that XI puts a wrapper around the 2 input messages so the structure of the XML I am mapping is:
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Messages xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
<ns2:Message1>
<ns:(root of first message)>
</ns:(root of first message)>
</ns2:Message1>
<ns2:Message2>
<ns:(root of second message)>
</ns: (root of second message)>
</ns2:Message2>
</ns2:Messages>
Currently my XSL looks like the following:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge" xmlns:javamap="java:systemDate.CurrentDate" version="2.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8"/>
<xsl:param name="inputparam"/>
<xsl:template match="ns2:Messages">
...<xsl:calltemplate name="FormattingTemplate"/>
</xsl:template>
<xsl:template name="FormattingTemplate">
</xsl:template>
</xsl:stylesheet>
When I test the mapping it works fine until it calls the FormattingTemplate. Then it throws out a "transformer exception" error saying the prefix 'ns2' is not mapped to a namespace.
If anyone could tell me where I am going wrong I would be very grateful.
Thanks,
MikeHi Udo,
Thanks for your reply.
When testing the stylesheet locally with XMLSpy, it works fine, but I have just noticed that it adds information in the root tag of the target message as follows:
<(root of target message) xmlns:javamap="java:systemDate.CurrentDate" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
I checked the root tag of the target message in XI and it does not automatically add this information. Thus I added it in my stylesheet so the information above is projected in the target message, but the same error message appears when the call template function is called. Do you know if I need to somehow add a namespace to templates other than the main one? If so, do you know how I go about doing that?
Thanks,
Mike
Maybe you are looking for
-
I am using the new 27 inch iMac running Mountain Lion. I am a registered Creative Cloud user. I just installed Illustrator CC and it will not start. When the splash screen appears, I get this error message: Can't print the illustration. Disk full err
-
Hi Frens Can any one help me the Jump target sample code in cmod Rgds
-
I'm generating the Excel report from java .In that i create a row,but i don't know how to increase the size of the cell.if any one have idea.kindly suggest it
-
TIFFs won't print from my InDesign file
I'm printing proofs from my InDesign document, and all my other linked graphics print, but any TIFFs will not. I've tried different printers and it's the same. Any ideas?
-
Macbook Pro Mid 2012 Non Retina. SSD/HARDRIVE
Processor 2.3 GHz Intel Core i7 Memory 4 GB 1600 MHz DDR3 Graphics Intel HD Graphics 4000 384 MB/ NVIDIA GeForce GT 650M 500gb sata disk My question is that i was thinking about upgrading my my hadrive to an ssd, im not sure how to go about it, al