Question
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Last activity: 15 Apr 2016 10:45 EDT
Parse XML and Write into DB Table
Hello,
I need to upload an xml file , parse some of its elements (not all of them) and write the result into a defined DB Table. How to achieve that?
I already checked "Parse Rules" articles , but, I cannot find where to upload the XML file; do we need to add manually each element of this xml there? Can you please help as I didn't get well the idea behind this Parse XML Is there another way to do that?
Thanks in advance,
Rosy
Message was edited by: Marissa Rogers - Added Category
-
Like (0)
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Accepted Solution
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
Adding to Aditya's comment, In order to validate the parsing behavior they are 2 approaches.
- You can run Parse-XML rule directly by providing input and if parsing happens successfully , you can see the values get assigned to properties correctly.
- In activity you can use Show-Page method to view the contents of the page after Apply-Parse-XML method.
Hope this helps!
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
If you have xsd's , you can create Parse-XML rules using Connector&Metadata accelerator wizard.
-
Monisha Elangovan
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Thanks Gangababu for your answer! No, I don't have xsds. I only have the XML file. Do you have any idea how to do that?
Thank you,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
You can try converting XML's to XSD's using online tools. Please refer http://www.freeformatter.com/xsd-generator.html
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hello Gangababu, do you have an idea on my above question please?
Thanks in advance,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
Hi Rosy,
You need to select Purpose as Generate Data Mapping rules and Metadata as xsd.
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Thanks a lot Gangababu! I have found that... I will try that and get back to you! Many thanks for that.
Rosy
![](https://accounts.pega.com/sites/default/files/pega-user-image/35/REG-34624.png?source=PUMINIT)
![](https://accounts.pega.com/sites/default/files/pega-user-image/35/REG-34624.png?source=PUMINIT)
Pegasystems Inc.
GB
Hi Rosy,
There are tools that 'guestimate' an XSD given a particular XML instance document.
I just googled for one , and found: http://xmlgrid.net/xml2xsd.html
I made up an XML instance like this:
<library> <books> <book> <title>The Martian</title> <author>Andy Weir</author> </book> <book> <title>2001: A Space Odyssey</title> <author>Arthur C. Clarke</author> </book> </books> </library>
I pasted it into the Web App and clicked 'load'; this then generated me the following XSD:
Hi Rosy,
There are tools that 'guestimate' an XSD given a particular XML instance document.
I just googled for one , and found: http://xmlgrid.net/xml2xsd.html
I made up an XML instance like this:
<library> <books> <book> <title>The Martian</title> <author>Andy Weir</author> </book> <book> <title>2001: A Space Odyssey</title> <author>Arthur C. Clarke</author> </book> </books> </library>
I pasted it into the Web App and clicked 'load'; this then generated me the following XSD:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <!-- XML Schema Generated from XML Document on Thu Mar 31 2016 09:34:46 GMT+0100 (GMT Standard Time) --> <!-- with XmlGrid.net Free Online Service http://xmlgrid.net --> <xs:element name="library"> <xs:complexType> <xs:sequence> <xs:element name="books"> <xs:complexType> <xs:sequence> <xs:element name="book" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string"> </xs:element> <xs:element name="author" type="xs:string"> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
I haven't tested the XSD with PRPC.
Also I believe it is not possible to have a 'perfect' XML->XSD generator; because it's not always going to be possible to infer all the constraints an XSD may have to have (minOccurs etc); but it might do as a 'first-draft'.
Cheers
John
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Thank you john, but, I still don't know where to use this xsd in order to parse the xml?
Thanks a lot,
rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Accenture
SG
Hi Rosy,
Take the XSD file and deploy it a local PRPC or in Server where your PRPC is installed. after that you can use it in the accelarator with the path of the XSD in the Server and generate the Parse rules
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
![](https://accounts.pega.com/sites/default/files/pega-user-image/35/REG-34624.png?source=PUMINIT)
![](https://accounts.pega.com/sites/default/files/pega-user-image/35/REG-34624.png?source=PUMINIT)
Pegasystems Inc.
GB
Hi Rosy : can you post a screenshot of the Parse XML rule itself ?
Thanks,
John
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi John,
I just wen to MetaData Wizard and I have chosen my xsd (the same one in my reply to Gangababu below), then, I have got this error... I didn't do anything else.
Is it sufficient for you?
Thanks in advance,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
If possible Could you please share the XSD's used. Might be some elements/name spaces got missed while converting xml's to xsd's.
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi Gangababu,
This is the xsd that I am using:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MxRights">
<xs:complexType>
<xs:sequence>
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="ExpiryDate"/>
<xs:element type="xs:string" name="MxGen2000CustomerName"/>
<xs:element type="xs:string" name="MxGen2000Version"/>
<xs:element type="xs:string" name="BuildId"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ClientTier">
<xs:complexType>
<xs:sequence>
<xs:element name="Connections">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="MaxNbOfSessions"/>
Hi Gangababu,
This is the xsd that I am using:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MxRights">
<xs:complexType>
<xs:sequence>
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="ExpiryDate"/>
<xs:element type="xs:string" name="MxGen2000CustomerName"/>
<xs:element type="xs:string" name="MxGen2000Version"/>
<xs:element type="xs:string" name="BuildId"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ClientTier">
<xs:complexType>
<xs:sequence>
<xs:element name="Connections">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="MaxNbOfSessions"/>
<xs:element type="xs:byte" name="MaxNbOfSessionsByUser"/>
<xs:element type="xs:byte" name="MaxNbOfNamedSessions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Categories">
<xs:complexType>
<xs:sequence>
<xs:element name="Category" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element type="xs:byte" name="NbLicenses"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ApplicationServerTier" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Code"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="LauncherDeclaration"/>
<xs:element type="xs:string" name="ExpiryDate"/>
<xs:element type="xs:string" name="LicenseDefinitionClass"/>
<xs:element type="xs:string" name="RightsDefinitionClass"/>
<xs:element name="LicenseGranted">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Properties" minOccurs="0"/>
<xs:element name="Modules" minOccurs="0">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Properties" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Module"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Expiry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Module" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name" minOccurs="0"/>
<xs:element type="xs:string" name="Description" minOccurs="0"/>
<xs:element type="xs:string" name="ExpiryDate" minOccurs="0"/>
<xs:element name="DefaultComponent" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Component" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="category" use="optional"/>
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="selected" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="OptionalComponents">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Option" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Component" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="category" use="optional"/>
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="selected" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="label" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="label" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:float" name="version" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="datadictionary-module-definition" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="main-module" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Formulae" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="FormulaPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SingleFormulae" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Formula" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Skeletons" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="SkeletonPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Contexts" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="SingleContexts">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Context" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Templates" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="TemplatePaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Jars" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Jar" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="module" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="Formulae">
<xs:complexType>
<xs:sequence>
<xs:element name="FormulaPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SingleFormulae" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Formula" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Skeletons">
<xs:complexType>
<xs:sequence>
<xs:element name="SkeletonPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Contexts">
<xs:complexType>
<xs:sequence>
<xs:element name="SingleContexts">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Context" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Templates">
<xs:complexType>
<xs:sequence>
<xs:element name="TemplatePaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Jars">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Jar" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute type="xs:string" name="id" use="optional"/>
<xs:attribute type="xs:string" name="deps" use="optional"/>
<xs:attribute type="xs:string" name="checked" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="id" use="optional"/>
<xs:attribute type="xs:string" name="checked" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MLCModule" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="MLCExpiryDate"/>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="Type"/>
<xs:element type="xs:string" name="value" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TransactionList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Family"/>
<xs:element type="xs:string" name="Group"/>
<xs:element type="xs:string" name="Type"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Expiry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OptionalModules" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Module"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Expiry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OpenlinkSettings" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Data"/>
<xs:element type="xs:string" name="Type0"/>
<xs:element type="xs:string" name="Type1"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Import"/>
<xs:element type="xs:string" name="Export"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ModelsList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Properties"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Thanks a lot for your help,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
Hi Rosy,
I tried in my local PRPC7.2 system by adding below line at top of xsd and consumed the xsd. I was able to create the rules. Adding the screenshot for your reference.
<?xml version="1.0" encoding="UTF-8"?>
Could you please give it a try? By the way what's the PRPC version are you in?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MxRights">
<xs:complexType>
<xs:sequence>
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
Hi Rosy,
I tried in my local PRPC7.2 system by adding below line at top of xsd and consumed the xsd. I was able to create the rules. Adding the screenshot for your reference.
<?xml version="1.0" encoding="UTF-8"?>
Could you please give it a try? By the way what's the PRPC version are you in?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MxRights">
<xs:complexType>
<xs:sequence>
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="ExpiryDate"/>
<xs:element type="xs:string" name="MxGen2000CustomerName"/>
<xs:element type="xs:string" name="MxGen2000Version"/>
<xs:element type="xs:string" name="BuildId"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ClientTier">
<xs:complexType>
<xs:sequence>
<xs:element name="Connections">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:short" name="MaxNbOfSessions"/>
<xs:element type="xs:byte" name="MaxNbOfSessionsByUser"/>
<xs:element type="xs:byte" name="MaxNbOfNamedSessions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Categories">
<xs:complexType>
<xs:sequence>
<xs:element name="Category" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name"/>
<xs:element type="xs:byte" name="NbLicenses"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ApplicationServerTier" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Code"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="LauncherDeclaration"/>
<xs:element type="xs:string" name="ExpiryDate"/>
<xs:element type="xs:string" name="LicenseDefinitionClass"/>
<xs:element type="xs:string" name="RightsDefinitionClass"/>
<xs:element name="LicenseGranted">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Properties" minOccurs="0"/>
<xs:element name="Modules" minOccurs="0">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Properties" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Module"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Expiry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Module" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Name" minOccurs="0"/>
<xs:element type="xs:string" name="Description" minOccurs="0"/>
<xs:element type="xs:string" name="ExpiryDate" minOccurs="0"/>
<xs:element name="DefaultComponent" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Component" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="category" use="optional"/>
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="selected" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="OptionalComponents">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Option" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="Component" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="category" use="optional"/>
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:string" name="selected" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="label" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="label" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:float" name="version" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="datadictionary-module-definition" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="main-module" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Formulae" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="FormulaPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SingleFormulae" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Formula" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Skeletons" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="SkeletonPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Contexts" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="SingleContexts">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Context" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Templates" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="TemplatePaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Jars" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Jar" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="module" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="Formulae">
<xs:complexType>
<xs:sequence>
<xs:element name="FormulaPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SingleFormulae" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Formula" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Skeletons">
<xs:complexType>
<xs:sequence>
<xs:element name="SkeletonPaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Contexts">
<xs:complexType>
<xs:sequence>
<xs:element name="SingleContexts">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Context" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Templates">
<xs:complexType>
<xs:sequence>
<xs:element name="TemplatePaths">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Path" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Jars">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Jar" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute type="xs:string" name="id" use="optional"/>
<xs:attribute type="xs:string" name="deps" use="optional"/>
<xs:attribute type="xs:string" name="checked" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="id" use="optional"/>
<xs:attribute type="xs:string" name="checked" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MLCModule" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="MLCExpiryDate"/>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:string" name="Type"/>
<xs:element type="xs:string" name="value" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TransactionList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Family"/>
<xs:element type="xs:string" name="Group"/>
<xs:element type="xs:string" name="Type"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Expiry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OptionalModules" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Module"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Expiry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OpenlinkSettings" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Properties">
<xs:complexType>
<xs:sequence>
<xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Data"/>
<xs:element type="xs:string" name="Type0"/>
<xs:element type="xs:string" name="Type1"/>
<xs:element type="xs:string" name="Description"/>
<xs:element type="xs:string" name="Import"/>
<xs:element type="xs:string" name="Export"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ModelsList" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="Properties"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Updated: 6 Apr 2016 10:34 EDT
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Many thanks for you suggestion Gangababu; after adding that before my xsd block, it was successfully generated (although I have some elements in draft mode but I will ignore them now) and I have my classes generated as well.
But, I still have a question please. How do I parse my xml now using this xsd? I need to write data into a DB table... Can you please give me a hint?
Thanks in advance,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
One approach I could think of to create an activity with below steps.
- Call Page-New method.
- Assign XML value to text property.
- Call Apply-Parse-XML method to map XML text message to clipboard properties.
- Once you have data in clipboard you can save the data to database using Obj-Save method.
P.S: I didn't try this approach in house. I am giving a suggestion. Incase if it doesn't work please don't mind.
Hope this helps!
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
If you want to explicitly insert some property values to database table, you need to optimize those properties and save the class using Obj-Save method.
In your case Property is a page list property. Inside Property you want to save "Family", "Group", "Type" to a table . Then you need to optimise these properties and save the property class using Obj-Save method.
Hope this helps!
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi Gangababu,
Sorry for my multiple questions, but, this is my first experience with XML parsing in Pega.
Now, I have my XML parser as shown in my previous comment, how to input my XML file in order to parse it using this rule here?
I will check if parsing is correct and properties are well populated before saving that first, so, in that case, I will be sure that this is what I want.
Can you please help me?
Thanks a lot,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Accenture
SG
Accepted Solution
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
Adding to Aditya's comment, In order to validate the parsing behavior they are 2 approaches.
- You can run Parse-XML rule directly by providing input and if parsing happens successfully , you can see the values get assigned to properties correctly.
- In activity you can use Show-Page method to view the contents of the page after Apply-Parse-XML method.
Hope this helps!
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi Gangababu,
When running my xml parser in order to check ur 1st option, I have discovered that it is not available.
I have regenerated again my xml parser using xsd and I have found that it is is draft mode:
with the following error:
Although when u did it from ur side, it is well generated. I'm using version 7.1.7. do you thing it is my version that cause that behavior?
Thanks a lot for your usual help,
Rosy
Updated: 8 Apr 2016 3:30 EDT
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi Gangababu,
This is too weird... I have copied your xsd on my PRPC 7.2 and I'm still getting the same behavior.
so, it's not related to my version. Do you think am doing it wrong? I only paste my xsd and choose : MX-MXSFA-Work-Int- as base class.
Can you please help?
These are my step-by-step screens:
Hi Gangababu,
This is too weird... I have copied your xsd on my PRPC 7.2 and I'm still getting the same behavior.
so, it's not related to my version. Do you think am doing it wrong? I only paste my xsd and choose : MX-MXSFA-Work-Int- as base class.
Can you please help?
These are my step-by-step screens:
Thanks again,
rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hello,
After clearing server's caches, I was able to generate that correcly.
Thanks,
Rosy
Updated: 11 Apr 2016 8:28 EDT
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi Gangababu,
I have tried option 1: unit testing of my parse rule by running it, But, I got the following page:
Hi Gangababu,
I have tried option 1: unit testing of my parse rule by running it, But, I got the following page:
<?xml version="1.0"?> | |
<pagedata> | |
<pxObjClass>MX-MXSFA-Int-ApplicationServerTier</pxObjClass> | |
<pzStatus>valid</pzStatus> | |
<LicenseGranted> | |
<pxObjClass>MX-MXSFA-Int-LicenseGranted</pxObjClass> | |
<TransactionList> | |
<pxObjClass>MX-MXSFA-Int-TransactionList</pxObjClass> | |
<Properties2> | |
<pxObjClass>MX-MXSFA-Int-Properties</pxObjClass> | |
<Property REPEATINGTYPE="PageList"/> | |
</Properties2> | |
</TransactionList> | |
<ModelsList> | |
<pxObjClass>MX-MXSFA-Int-ModelsList</pxObjClass> | |
</ModelsList> | |
<datadictionaryModuleDefinition> | |
<pxObjClass>MX-MXSFA-Int-DatadictionaryModuleDefinition</pxObjClass> | |
<mainModule REPEATINGTYPE="PageList"/> | |
</datadictionaryModuleDefinition> | |
<Modules> | |
<pxObjClass>MX-MXSFA-Int-Modules</pxObjClass> | |
<Properties2> | |
<pxObjClass>MX-MXSFA-Int-Properties</pxObjClass> | |
<Property REPEATINGTYPE="PageList"/> | |
</Properties2> | |
<Module REPEATINGTYPE="PageList"/> | |
</Modules> | |
<MLCModule> | |
<pxObjClass>MX-MXSFA-Int-MLCModule</pxObjClass> | |
<Properties2> | |
<pxObjClass>MX-MXSFA-Int-Properties</pxObjClass> | |
<Property REPEATINGTYPE="PageList"/> | |
</Properties2> | |
</MLCModule> | |
<OptionalModules> | |
<pxObjClass>MX-MXSFA-Int-OptionalModules</pxObjClass> | |
<Properties2> | |
<pxObjClass>MX-MXSFA-Int-Properties</pxObjClass> | |
<Property REPEATINGTYPE="PageList"/> | |
</Properties2> | |
</OptionalModules> | |
<OpenlinkSettings> | |
<pxObjClass>MX-MXSFA-Int-OpenlinkSettings</pxObjClass> | |
<Properties2> | |
<pxObjClass>MX-MXSFA-Int-Properties</pxObjClass> | |
<Property REPEATINGTYPE="PageList"/> | |
</Properties2> | |
</OpenlinkSettings> | |
</LicenseGranted> | |
</pagedata> | |
Where can I find values associated to the properties? For example, as a part of my xml (this is not the complete xml), I have:
<TransactionList> | ||||||
<Properties> | ||||||
<Property> | ||||||
<Family>IRD</Family> | ||||||
<Group>BOND</Group> | ||||||
<Type></Type> | ||||||
<Description>Bonds</Description> | ||||||
<Expiry></Expiry> | ||||||
</Property> | ||||||
<Property> | ||||||
<Family>IRD</Family> | ||||||
<Group>BOND</Group> | ||||||
<Type>CALL</Type> | ||||||
<Description>Callable Bonds</Description> | ||||||
<Expiry></Expiry> | ||||||
</Property> | ||||||
</Properties> | ||||||
</TransactionList> |
Above, I have: MX-MXSFA-Int-TransactionList, but, I cannot see its properties to check if parsing is done successfully or not, I need to check if properties are well populated. Can you please help?
Thanks,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Can someone help please?
Thanks,
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
Please paste the input XML used to parse xsd.
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi Gangababu,
Yes sure. Please find it attached.
Thanks,
Rosy !
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
Hi Rosy,
I ran the parse-xml rule in house system and could see values got mapped to associated properties. Please find below snippet.
<ClientTier>
<MaxNbOfNamedSessions>80</MaxNbOfNamedSessions>
<MaxNbOfSessions>480</MaxNbOfSessions>
<MaxNbOfSessionsByUser>6</MaxNbOfSessionsByUser>
</Connections>
Hi Rosy,
I ran the parse-xml rule in house system and could see values got mapped to associated properties. Please find below snippet.
<ClientTier>
<MaxNbOfNamedSessions>80</MaxNbOfNamedSessions>
<MaxNbOfSessions>480</MaxNbOfSessions>
<MaxNbOfSessionsByUser>6</MaxNbOfSessionsByUser>
</Connections>
<NbLicenses>25</NbLicenses>
<Name>Traders</Name>
</rowdata>
<NbLicenses>35</NbLicenses>
<Name>Sales</Name>
</rowdata>
<NbLicenses>10</NbLicenses>
<Name>Middle Office</Name>
</rowdata>
<NbLicenses>5</NbLicenses>
<Name>CreditandCollateral</Name>
</rowdata>
<NbLicenses>5</NbLicenses>
<Name>IT</Name>
</rowdata>
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Thanks a million Gangababu, I really appreciate your prompt help
I was running the wrong parse rule (MX-MXSFA-INT-APPLICATIONSERVERTIER!PYDEFAULT!APPLICATIONSERVERTIER), after comparing your snapshot, I ran the right one (MX-MXSFA-Int-MxRights) , and it works like a charm!
I will now continue and try to save them in a table as per ur suggestion and Aditya's one and I will keep u posted.
Again, thx a lot
Rosy
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
PEG
IN
Good to hear that it worked for you !
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
THANKS a lot Aditya
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
![](/profiles/pega_profile/modules/pega_user_image/assets/user-icon.png)
Salame
Hi Gangababu,
I now have my properties well mapped , thx a lot
But, I tried to optimize the needed properties Family, Group Type).
I now have the following problem: Index_ApplicationServerTier_LicenseGranted_TransactionList_Properties_Property is too long, maximum length allowed is 64 .
How to fix that? for sure, I cannot rename them to have small characters as they are generated alone with my parse xml, no?
Should I need to modify my xsd to have small characters or there is a proper way to do that?
Thanks a lot,
Rosy