XSLT code snippet
Hi all,
In my XSL file I am using the following snippet
<xsl:attribute name="noNamespaceSchemaLocation" namespace="http://www.w3.org/2001/XMLSchema-instance" >
<xsl:text disable-output-escaping="no">../xsd/nikuxog_project.xsd</xsl:text>
</xsl:attribute>
The resultant output is...
<NikuDataBus xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance" ns2:noNamespaceSchemaLocation="../xsd/nikuxog_project.xsd">
What I want is, how to specify the prefix in xsl to be used. Because sometimes 'ns2' getting generated and sometimes it is 'ns1'!!!
I want to use 'xsi' instead of these prefixes.
I think you need to add xmlns:xsi="http://www.example.org" on top of your xsl file.
Hope this helps
Thanks
Ram
Similar Messages
-
Working code snippet for JSSE 1.0.2
This code works only with JSSE 1.0.2. JSSE 1.0.1 has a bug I believe which give null cert chain
error when using client authorization.
Below is a java code snippet to create a SSL server and client sockets.
SocketsFactory.java
This class is an utility class which gets you the Secure Socket for server and the client.
It reads from the properties file.
public class SocketsFactory{
/** Creates a SSL client socket. It uses the properties obtained from the
* sslPropsFile to create the client socket.
* @param sslPropsFile The ssl properties file that contains information about the provider etc.
* @param host The host to connect to.
* @param port The port on which this socket should attempt to connect
* @throws IOException if there was any exceptions in creating the sockets or if the properties file
* was not found or corrupted.
* @return returns the socket that was created.
public static Socket createSecureSocket(final String sslPropsFile, String host,int port)throws IOException{
Properties props = readPropertiesFile(sslPropsFile);
SSLSocketFactory factory = null;
System.setProperty("javax.net.ssl.trustStore",(String)props.get("com.ibm.idmg.ssl.keyStore"));
//Getting a secure client socket using sun..
try {
addProvider(props);
// Set up a key manager for client authentication
// if asked by the server. Use the implementation's
// default TrustStore and secureRandom routines.
SSLContext ctx = getSSLContext(props);
factory = ctx.getSocketFactory();
catch (Exception e) {
e.printStackTrace();
throw new IOException(e.getMessage());
SSLSocket client =(SSLSocket)factory.createSocket(host, port);
client.startHandshake();
return client;
/** Creates a SSL server socket based on sun's implementation using JSSE. Uses the
* sslPropsFile to get the keystore used for validating certificates and their
* passwords.
* @param sslPropsFile The properties file containing SSL provider, key passwords etc.,
* @param port The port to which this socket should listen at.
* @throws IOException If the properties file was not found or it was corrupted or if there was any
* other errors while socket creation.
* @return the serversocket object.
public static ServerSocket createSecureServerSocket(final String sslPropsFile,int port) throws IOException{
Properties props = readPropertiesFile(sslPropsFile);
String trustStore = (String)props.get("com.ibm.idmg.ssl.keyStore");
System.setProperty("javax.net.ssl.trustStore",trustStore);
// Getting a sun secure server socket
SSLServerSocketFactory ssf = null;
try {
addProvider(props);
// set up key manager to do server authentication
SSLContext ctx = getSSLContext(props);
ssf = ctx.getServerSocketFactory();
} catch (Exception e) {
e.printStackTrace();
throw new IOException(e.getMessage());
SSLServerSocket socket = (SSLServerSocket)ssf.createServerSocket(port);
socket.setNeedClientAuth(true);
return socket;
* Internally used function to read a provider from the properties and
* add it as the current ssl provider. The properties should have the
* property <i>com.ibm.idmg.ssl.sslProvider</i> defined. Otherwise
* throws NullPointerException.
private static void addProvider(Properties props) throws Exception{
String provider = (String)props.get("com.ibm.idmg.ssl.sslProvider");
if (provider == null)
throw new NullPointerException("com.ibm.idmg.ssl.sslProvider is not specified!");
java.security.Security.addProvider((java.security.Provider)Class.forName(provider).newInstance());
* Internally used function to read a file and return it as java properties.
* It uses java.util.Properties. Throws FileNotFoundException if the file
* was not found. Otherwise returns the properties.
private static Properties readPropertiesFile(final String file) throws IOException{
if (file == null)
throw new IOException("SSL Context File name not specified!");
FileInputStream in = new FileInputStream(file);
Properties properties = new Properties();
properties.load(in);
in.close();
in = null;
return properties;
* Internal function used to retrieve a SSLContext object. It is used primarily
* for creating SSL sockets that can authenticate each other based on the
* keystores specified using the properties.
private static SSLContext getSSLContext(Properties props) throws Exception{
SSLContext ctx;
KeyManagerFactory kmf;
KeyStore ks;
String password = (String)props.get("com.ibm.idmg.ssl.keyStorePassword");
if (password == null)
password = System.getProperty("javax.net.ssl.keyStorePassword");
char[] passphrase = password.toCharArray();
ctx = SSLContext.getInstance("TLS");
kmf = KeyManagerFactory.getInstance("SunX509");
ks = KeyStore.getInstance("JKS");
String keyStoreFile = (String)props.get("com.ibm.idmg.ssl.keyStore");
if (keyStoreFile == null)
keyStoreFile = System.getProperty("javax.net.ssl.keyStore");
FileInputStream in = new FileInputStream(keyStoreFile);
ks.load(in, passphrase);
in.close();
in = null;
// All keys in the KeyStore must be protected by the same password.
String keyPassword = (String)props.get("com.ibm.idmg.ssl.keyPassword");
if (keyPassword != null)
passphrase = keyPassword.toCharArray();
kmf.init(ks, passphrase);
ctx.init(kmf.getKeyManagers(), null, null);
return ctx;
The Server properties file looks like this.
# Specify the SSL provider here.
# Using sun's reference implementation for testing..
com.ibm.idmg.ssl.sslProvider=com.sun.net.ssl.internal.ssl.Provider
# Specify the keystore file that this ssl socket should use
com.ibm.idmg.ssl.keyStore=server.ks
# Specify the password for this keystore file
com.ibm.idmg.ssl.keyStorePassword=servercanpass
# Specify the password used to protect the keys in the keystore
# Note: all the keys should have the same password
com.ibm.idmg.ssl.keyPassword=icanpass
The client properties file
# Specify the SSL provider here.
# Using sun's reference implementation for testing..
com.ibm.idmg.ssl.sslProvider=com.sun.net.ssl.internal.ssl.Provider
# Specify the keystore file that this ssl socket should use
com.ibm.idmg.ssl.keyStore=client.ks
# Specify the password for this keystore file
com.ibm.idmg.ssl.keyStorePassword=clientshouldpass
# Specify the password used to protect the keys in the keystore
# Note: all the keys should have the same password
com.ibm.idmg.ssl.keyPassword=canipass
Now to create the certificates..
Its a 5 step process
1) Create the keystore file.
keytool -genkey -alias mohan -dname "CN=Mohan Tera OU=IS O=IM L=sanjose S=NY C=US" -keystore server.ks -storepass servercanpass -validity 180 -keypass icanpass
2) Create a self signed certificate. If you need to get it signed from
verisign then you have to create a certificate request. For testing purposes,
you can create a self signed certificate.
keytool -selfcert -alias mohan -dname "CN=Mohan Tera OU=IS O=IM L=sanjose S=NY C=US" -keystore server.ks -storepass servercanpass -validity 180 -keypass icanpass
3) Export the public key from the keystore to a certificate file that is to be imported to the client keystore.
keytool -export -alias mohan -file fromserver.cer -keystore server.ks -storepass servercanpass
4) Repeat the above steps for the client also..
a)
keytool -genkey -alias moks -dname "CN=Jennifer Poda OU=Javasoft O=Sun L=Edison S=NJ C=US" -keystore client.ks -storepass clientshouldpass -validity 180 -keypass canipass
b)
keytool -selfcert -alias moks -dname "CN=Jennifer Poda OU=Javasoft O=Sun L=Edison S=NJ C=US" -keystore client.ks -storepass clientshouldpass -validity 180 -keypass canipass
c)
keytool -export -alias moks -file fromclient.cer -keystore client.ks -storepass clientshouldpass
5) Import the certificates that were exported in steps 3 and 4c in client and server keystore respectively.
keytool -import -trustcacerts -alias new -file fromserver.cer -keypass keypass -storepass clientshouldpass -keystore client.ks
keytool -import -trustcacerts -alias new -file fromclient.cer -keypass keypass -storepass servercanpass -keystore server.ks
And voila you are all set to go..
Hope this explains to all the people who are struggling with JSSE..
Regards,
Mokswhen i using your method in my code i get the following exception
pl. help me.
java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(KeyProtector.java:301)
at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:103
at java.security.KeyStore.getKey(KeyStore.java:289)
at com.sun.net.ssl.internal.ssl.X509KeyManagerImpl.<init>(DashoA6275)
at com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl.engineInit(DashoA6
275)
at javax.net.ssl.KeyManagerFactory.init(DashoA6275)
at ClassFileServer.getServerSocketFactory(ClassFileServer.java:145)
at ClassFileServer.main(ClassFileServer.java:115)
Exception in thread "main" java.lang.NullPointerException
at ClassFileServer.main(ClassFileServer.java:117) -
How do I create a drop down menu with Code Snippets and Flash CS5?
Hi
I am wondering how to create a drop down menu using the Code Snippets and CS5?
There are some older tutorials out there and it would be nice if someone could create an updated drop down menu tutorial, and it might be me doing this after I have figured out the best and easiest way to create one, but before that I need some pointers.
Thanks!
Have a great day!
Paal JoachimYou can use panel widget to create manual menu where set to show target on rollover.
Something like this :
http://muse.adobe.com/exchange-library/menu-vertical-accordion-widget-1
http://muse.adobe.com/exchange-library/tiptop-navigation-menu
Thanks,
Sanjit -
Audio captcha is not working in mac safari 5.1.7.
We used a code snippet that is working in other browser like IF 7,8,9, crome and firefox.
Audio refresh is also not happening.
When submit Audio Captcha then jcapcha framework giving InvocationTargetException.
<Edited By Host>Audio captcha is not working in mac safari 5.1.7.
We used a code snippet that is working in other browser like IF 7,8,9, crome and firefox.
Audio refresh is also not happening.
When submit Audio Captcha then jcapcha framework giving InvocationTargetException.
<Edited By Host> -
Is there a way to remove a code snippet from the library of my snippets in Edge Animate CC2014?
When you click on "My Snippets", it will list down all saved user snippets, which you can right-click and click on "delete" to delete it.
-
OLE2 Doc/Code snippet to assist in creating a word doc with underlined text
I would like to use OLE2 to create a simple Word document. I would like some of the text to be bold/underlined and the rest of the text to be regular. There seems to be a serious dearth of information regarding OLE2 in conjunction with PS/SQL in Word applications. We're running Forms 6 and Oracle 9i.
I don't believe that I need to use the techniques described in the Forms Manual (OLE2 containers, etc.). I have managed to create a Word doc and write some text to it but I've been unable to find out/guess at the syntax that I'd need to control bolding and underlining. It would be a big help if I could just find the syntax for Word OLE2 commands. During my documentation search, I seem to remember a post that mentioned 'Reference 2' and maybe 'Reference 3' as a source of information related to OLE2 in PL/SQL code. If anyone can give me a shove in the right direction I'm more than willing to read the manuals. I won't be too disappointed if someone could send me a code snippet either!
Thanks,
Ron WalkerHi Ron,
Office ships with a number of resources that you will find indispensable for the sort of work you're doing. Take a look at the VBA IDE (Visual Basic for Applications IDE). You may already be familiar with it, if you've ever written a Word macro, but to call it a macro editor sells it short -- it is a full-blown development environment. Its Object Browser allows you to browse Word's object model, search by keyword, and view call syntax.
In case you aren't familiar with the VBA IDE, try this:
1. Open Word
2. Switch between Word and the VBA IDE by pressing <Alt><F11>
3. Open the Object Browser by pressing <F2>
Spend some time familiarizing yourself with the Object Browser. Constrain its scope by selecting the Word library instead of <All Libraries> (the default). Learn to search by keyword. Click on items within your results for details. If Visual Basic Help is installed, pressing <F1> will raise help on a selected item.
Visual Basic Help may not be part of the Compact or Typical install. Running Office Setup, either from the install CD, or through Add/Remove Programs under Control Panel, will allow you to add the feature. (The Office installer lists Visual Basic Help in the Office Tools section.)
I have found the VBA IDE to be the perfect place for prototyping and testing automated processes. It is a far friendlier environment for learning Office automation, as it offers code completion and context-driven help. Once the process works, I manually translate my VBA routine into Forms PL/SQL, which is fairly painless. I've written a short tutorial, that I will post shortly -- I didn't want to bury it in this thread!
Hope this helps,
Eric Adamson
Lansing, Michigan -
Xslt code to replace a node name to include ns0 prefix
Hi,
Is there some easy xslt code to change the following: (I want the ns0 tag and namespace introduced in the root node so that my mapping works. I have created the mapping using externally provided wsdl, but the input message expects the prefix ns0 whereas the message coming to me from third party does not have the prefix. So in order to force it through the mapping I am thinking of using xslt to translate <createOrUpdateJobsResponse> to <ns0:createOrUpdateJobsResponse xmlns:ns0="http://service.webservice.xxxxxxxx.com"> and the closing tag </createOrUpdateJobsResponse> to </ns0:createOrUpdateJobsResponse>.
Source:
<?xml version="1.0" encoding="UTF-8"?>
<createOrUpdateJobsResponse>
<createOrUpdateJobsReturn>
<errorCode/>
<errorMessage/>
<goodResult/>
<jobReferenceNumber/>
</createOrUpdateJobsReturn>
</createOrUpdateJobsResponse>
Target:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:createOrUpdateJobsResponse xmlns:ns0="http://service.webservice.xxxxxxxx.com">
<createOrUpdateJobsReturn>
<errorCode/>
<errorMessage/>
<goodResult/>
<jobReferenceNumber/>
</createOrUpdateJobsReturn>
</ns0:createOrUpdateJobsResponse>Hi James,
You could give a try with this :
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://service.webservice.xxxxxxxx.com" version="1.0">
<xsl:output indent="yes" omit-xml-declaration="no"/>
<xsl:template match="/">
<ns0:createOrUpdateJobsResponse>
<xsl:apply-templates/>
</ns0:createOrUpdateJobsResponse>
</xsl:template>
<xsl:template match="createOrUpdateJobsReturn">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
It should recreate the same msg structure with a ns0 namespace for the output document
Rgds
Chris -
I just updated today, and now a project I had been working on for weeks (my first real project) won't open in CC anymore. The only reason I wanted to open it back up in CC - NOT Adobe Edge Animate CC (2014), was because this updated Edge Animate IS MISSING THE CODE SNIPPET SIDEBAR!! WHY!! WHY!! WHY!! It's a little hard to follow along with tutorials you have been using when they insert snippets from the sidebar and suddenly you don't have one anymore!
I have rebuilt permissions and restarted hoping that would fix the issue but it has not. If I can't get this project to pen in CC, can someone tell me how to trick CC into opening it again? Byt he Way -- the old version of Edge Animate was AUTOMATICALLY UNINSTALLED with this update. Also very frustrating!! I had to go to my could menu and download CC (3.0) again.OK - Possibly Good News... I talked to Adobe Tech Support. I am able to download a previous version of the Edge Animate CC by choosing PREVIOUS VERSION under the FIND NEW APPS section of the Creative Cloud Desktop app. This is a new feature of CC. Thankfully. I can install CC and then do as hemanth kumar r suggested and edit the _edge.js file to allow 3.0 to open the file.
Thanks for all of the help. Sorry for the frustration in MY TYPING . I'll reply if that all works. -
I cannot get the code snippets to show. What am I missing here?
Hi there,
Code snippets have changed for Edge Animate CC 2014: they are categorized by type, and allow you to choose which elements are being targeted. Please refer to the attached screenshot:
hth,
Joe -
Converting Frame files to PDF adds carriage return in code snippets
Our writing group is using FrameMaker 7.2 with Acrobat 9. The documentation we write includes code snippets. Conversion from Frame to PDF adds a carriage return to the end of any line of code. This causes any snippet containing a wrapped line to be incorrect if it is copied and pasted directly from the PDF. Does anyone knopw if there's a fix for this?
Thanks,
GeorgeDear Alexander,
Thanks for the reply.
In this I am using the FM 'CONVERT_ABAPSPOOLJOB_2_PDF'. I have checked the settings from SPAD that is also same in both servers for particular output device. But the patches are diffrennt in both the servers, the server from which layout is not coming properly having the high level patches in compare to the other server(which is working fine). -
Dear SAP experts,
Would you be able to help me in configuring the right xslt code to accomodate the looping logic?
Source Document:
School (occur only once)
- Name (can occur multiple times)
- Nickname (occur only once)
- Desired name (occur only once)
Target Document:
School
- Name
- Nickname (the value for this should be obtained from 'Desired name field')
- Desired name
I have this code, but seems not working in looping logic. (to accomodate the multiple Names):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" media-type="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Order/OrderDetail/ListOfItemDetail/ItemDetail/BaseItemDetail/ItemIdentifiers/PartNumbers/BuyerPartNumber">
<BuyerPartNumber>
<PartNum>
<PartID>
<xsl:value-of select ="/Order/OrderDetail/ListOfItemDetail/ItemDetail/BaseItemDetail/ItemIdentifiers/PartNumbers/ManufacturerPartNumber/PartID"/>
</PartID>
</PartNum>
</BuyerPartNumber>
</xsl:template>
</xsl:stylesheet>
What happened is that the value was taken ONLY on the 1st line item. (1st Name occurence)
The succeeding Name field just copied the value of Nicknames from the 1st Name field.
Kindly advise how to handle the context (loop logic) in the xslt code.
Thanks!Apologies, but, it seems i did not indicate the complete message structure for the document I am testing.
Order (root)
OrderHeader (1st parent segment)
OrderNumber (child fields - 1st)
Order.. (child fields - 2nd)
Order...(child fields - 2nd)
OrderDetail (1st parent segment)
<fields under this segment were already mentioned from previous threads>
OrderSummary (1st parent segment)
NumOfLines (child fields - 1st)
TotalAmount (child fields - 1st)
Under Order, there are also OrderHeader and OrderSummary parent segment, other than OrderDetail, in which we focus our code.
I've tried your code, but, the segments OrderHeader and OrderSummary and child fields under it were not appearing on my output.
But it seems, I've already generated the correct code.
Here it is,
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" media-type="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<xsl:template match="/Order/OrderDetail/ListOfItemDetail/ItemDetail/BaseItemDetail/ItemIdentifiers/PartNumbers/BuyerPartNumber">
<xsl:for-each select=".">
<BuyerPartNumber>
<PartNum>
<PartID>
<xsl:value-of select="../ManufacturerPartNumber/PartID"/>
</PartID>
</PartNum>
</BuyerPartNumber>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
I believe, the code you've suggested last time will accomodate only OrderDetail parent segment. Is this correct?
Thanks! -
Hello,
Can someone help me to give an XSLT code for the following condition?
Source Message:
/Order/Ident/ReceiverID = 203
Condition:
If the value of Source ReceiverID is 203, then, make it to the value to 456.
I've tried this code, but seems to be many error validations.
<xsl:template match="/Order/Ident/ReceiverID">
<xsl:choose>
<xsl:when test="203">
<xsl:attribute name="203">
<xsl:value-of select="456"/>
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="203">unknown</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Should you have helpful links, please let me know. I will greatly appreciate it.
Thanks in advance!
GerbertoGerberto,
Try this -
<xsl:choose>
<xsl:when test="*[local-name()='ReceiverID']='203' ">
<ns:YourField>
<xsl:value-of select="456"/>
</ns:YourField>
</xsl:when>
<xsl:otherwise>
<ns:YourField>
<xsl:value-of select="203"/>
</ns:YourField>
</xsl:otherwise>
</xsl:choose>
Let me know if this works for you.
Regards,
Neetesh -
Hi All,
I am doing on XSLT Mapping. It is having a lookup. Lookup is working fine and I am getting data back in one variable say 'Var1'.
Now in my mapping all the field are mapped one to one from source to target except one field say "lookup' and I am mapping responce of RFC 'Var1' variable to this node.
My XSLT code is as follows:
<TargetNode>
<Field1><xsl:value of select="/Isourcenode/Field1"/></Field1>
<Field2><xsl:value of select="/Isourcenode/Field2"/></Field2>
<Lookup><xsl:value of select="$Var1"/></Lookup>
<Field3><xsl:value of select="/Isourcenode/Field3"/></Field3>
<Field4><xsl:value of select="/Isourcenode/Field4"/>/<Field4>
</TargetNode>
Now here I get value of Variable Var1 in Lookup field whereas all the fields after that node like Field3,Field4 are not getting mapped value.
Do I need to do anything special to access the nodes values in xpath once i access variables using $ ?
Thanks and Regards,
AtulHi,
You can use CALL TRANSFORMATION <NAME> to meet your requirement
For an example, refer:
Re: help in Xml to abap
Thanks,
Aabhas -
Hi Mates,
I have requirement like
need to check value endwith Y then add comment line and populate output field using XSLT mapping.
Ex:
Input :Source=KolkataY
check Source is ends with Y
then Add comment line and populate Source =Kolkata
Please provide XSLT code for this requiremet.
Thanks
JAYANWhy do you need XSLT code ? it can be acheived by simple graphical mapping standard functions
if input endswith y then input concatenate with comment and pass to target
regards
Ninad -
I am trying to save a custom code snippet in Flash CC and it does not save, any ideas why? I am using Windows 8.1 with Flash CC.
I even when into the "Edit Code Snippet XML" and added a Custom folder and a custom template. Then I went back to add the code snippet again and it still did not work.
About line 32, I added:
<category title="Custom"
isBranch="true" expanded="false"
description="Code for common interactions">
<snippet isBranch="false">
<title>Custom Snippet</title>
<description>This is an example of a custom code snippet.</description>
<requiresSymbol>true</requiresSymbol>
<code><![CDATA[
// Code goes here
trace("A custom code snippet");
]]></code>
</snippet>
</category>
Any assistance would be greatly appreciated.UserAgent for the OP is - Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100405 Namoroka/3.6.3 - he might be running a 64-bit 3rd party build.
Maybe you are looking for
-
I updated from Snow Leopard OS X 10.6.8 to Mountain Lion OS X 10.8.2 on my MacBook Pro I used disk utility to restore my external hardrive because I read somewhere that that would fix the problem. It did fix the problem but only temporarily. I was ab
-
Hi, I just switched to Weblogic from anotehr appserver. I have a JSP page (sample given below) and I am trying to import the header for the EJBs that I will be using. For a simple thing as this which i have bee
-
Would like to change languages in App Store
I'm a Canadian residing in Korea and would like to be able to use the Korea App Store but in English. I actually also have an account at the Canadian App Store but my credit card expired and I'm not in a position to get a new one because I have to li
-
Terminal generates so extra lines every time I use a pipe ? Any Ideas ?
I am trying to extract my Public IP using bash, and have figured out several ways to do this, but I am having some unexpected lines in the result. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100
-
My organizer won't open on photoshop 10 elements
organizer wont open