Hi all, I am facing the problem while parsing the XML Document.. I am sending the XMLDocument as well as schema.. can you please tell me what could be the problem. I am getting the following error Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=47: General Schema Error: Grammar with uri: http://www.w3.org/2001/XMLSchema , can not be found; schema namespace may be wrong: Xerces supports schemas from the " http://www.w3.org/2001/XMLSchema" namespace or the instance document's namespace may not match the targetNamespace of the schema. Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=47: Element type "xsd:element" must be declared. Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=47: Attribute "name" must be declared for element type "xsd:element". Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=47: Attribute "type" must be declared for element type "xsd:element". Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=55: General Schema Error: Grammar with uri: http://www.w3.org/2001/XMLSchema , can not be found; schema namespace may be wrong: Xerces supports schemas from the " http://www.w3.org/2001/XMLSchema" namespace or the instance document's namespace may not match the targetNamespace of the schema. Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=55: Element type "xsd:element" must be declared. Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=55: Attribute "name" must be declared for element type "xsd:element". Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=55: Attribute "type" must be declared for element type "xsd:element". Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=56: General Schema Error: Grammar with uri: http://www.w3.org/2001/XMLSchema , can not be found; schema namespace may be wrong: Xerces supports schemas from the " http://www.w3.org/2001/XMLSchema" namespace or the instance document's namespace may not match the targetNamespace of the schema. Error: URI=file:///gsdotcom/choreo/users/sridhar/promega/choreo/packages/reposi tory/com/infy/choreo/repository/Final_BPML_Document.xml Line=56: Element type "xsd:element" must be declared. Any pointer will be great. Thanks, Sridhar.
Sridhar Raju.Y, Infosys Technologies Ltd., Plot # E/4, Infocity, Bhubaneswar. Ph: 91-674-320 001/050 extn 2644 Mail: [EMAIL PROTECTED]
<?xml version="1.0" encoding="UTF-8"?> <package namespace="http://www.myc.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://my.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://my.org MysXSD.xsd" > <process name="OrderProcessor"> <supports abstract="Finance"/> <supports abstract="MailRoom"/> <supports abstract="Manufacturing"/> <supports abstract="Marketing"/> <supports abstract="Shipment"/> <annotation> This is the executable process that starts with accepting the customer details from the database and intimates MailRoom. This is where MailRoom accepts the order from the customer. MaiRoom then does a check on the amount and depending on whether the amount is greater than or less than a certain amount say 5000/-, the order is given to Marketing or to Finance and Manufacturing for further processing. Upon receiving any of the notifications like "orderCannotBeProcessed" or "orderCanBeProcessed", the process completes. </annotation> <message name="orderCanBeProcessed" type="data"> <annotation> This is a concurrence from Finance Dept. </annotation> </message> <message name = "orderCannotBeProcessed" type="data"> <annotation > This is of type data and is generated by Sales denoting that the Order cannot be processed. </annotation> </message> <message name="getStatusInput" type="request"> <annotation > This captures the status request. </annotation> </message> <message name="getStatusOutput" type="response"> <annotation > This captures the status of the Order which can be either 'open' or 'closed'. </annotation> <xsd:element name="status" type="statusCode"/> </message> <message name="updInvInsuffOutput" type="request"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> </message> <message name="updInvInsuffInput" type="response"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> </message> <ruleSet name="checkCustomerDetails"> <rule condition="getOrderDetailsInput/customerId/text()!='0000'"/> <rule condition="getOrderDetailsInput/customer!= ''"/> <rule condition="getOrderDetailsInput/quantity!='0'"/> </ruleSet> <ruleSet name="checkOrderDetails"> <rule condition="getOrderDetailsInput/amount > '500'"/> </ruleSet> <sequence> <operation name="enterOrderDetails" > <participant select="MailRoom"/> <output message="getOrderDetailsOutput"/> <input message="getOrderDetailsInput"/> </operation> <switch name="isOrderGreaterThan"> <case ruleSet="checkOrderDetails" negative="false"> <operation name="marketingNegotiation"> <participant select="Marketing"/> <output message="contactMarketingOutput"> <assign target="customerId" select= "getOrderDetailsInput/customerId/text()"/> <assign target="orderId" select= "getOrderDetailsInput/orderId/text()"/> <assign target="productId" select= "getOrderDetailsInput/productId/text()"/> <assign target="quantity" select= "getOrderDetailsInput/quantity/text()"/> </output> <input message="contactMarketingInput"/> </operation> </case> <otherwise> <empty/> </otherwise> </switch> <produce> <participant select="Finance"/> <output message="getOrderFinInput"> <assign target="customerId" select="getOrderDetailsInput/customerId/text()"/> <assign target="orderId" select="getOrderDetailsInput/orderId/text()"/> <assign target="productId" select="getOrderDetailsInput/productId/text()"/> <assign target="quantity" select="getOrderDetailsInput/quantity/text()"/> <assign target="orderProcessor" select="OrderProcessor/uri"/> </output> </produce> <choice> <sequence> <consume> <participant select="Finance"/> <input message="orderCannotBeProcessed"/> </consume> <produce> <participant select="MailRoom"/> <output message="orderNotProcessed"/> </produce> </sequence> <sequence> <consume> <input message="orderCanBeProcessed"/> </consume> <produce> <participant select="Manufacturing"/> <output message="getOrderManInput"> <assign target="customerId" select= "getOrderDetailsInput/customerId/text()"/> <assign target="orderId" select= "getOrderDetailsInput/orderId/text()"/> <assign target="productId" select= "getOrderDetailsInput/productId/text()"/> <assign target="quantity" select= "getOrderDetailsInput/quantity/text()"/> <assign target="orderProcessor" select="OrderProcessor/uri"/> </output> </produce> <choice> <sequence> <consume> <input message="inventoryNotPresent"/> </consume> <operation name="inventoryInSuff" > <participant select="Inventory"/> <output message="updInvInsuffOutput"> <assign target="customerId" select="getOrderDetailsInput/customerId/text()"/> <assign target="orderId" select="getOrderDetailsInput/orderId/text()"/> </output> <input message="updInvInsuffInput"/> </operation> <produce> <participant select="MailRoom"/> <output message="orderNotProcessed"/> </produce> </sequence> <sequence> <consume> <input message="prepareBillInput"/> </consume> <operation name="getInvoice"> <participant select="Finance"/> <output message="prepareInvoiceOutput"> <assign target="quantity" select="getOrderDetailsInput/quantity/text()"/> <assign target="productId" select="getOrderDetailsInput/productId/text()"/> <assign target="customerId" select="getOrderDetailsInput/customerId/text()"/> <assign target="orderId" select="getOrderDetailsInput/customerId/text()"/> </output> <input message="prepareInvoiceInput"/> </operation> <produce> <participant select="MailRoom"/> <output message="invoiceDetailsInput"> <assign target="customerId" select="prepareInvoiceInput/customerId/text()"/> <assign target="orderId" select="prepareInvoiceInput/orderId/text()"/> <assign target="productId" select= "prepareInvoiceInput/productId/text()"/> <assign target="quantity" select="prepareInvoiceInput/quantity/text()"/> <assign target="price" select="prepareInvoiceInput/price/text()"/> </output> </produce> </sequence> </choice> </sequence> </choice> <complete/> </sequence> </process> <abstract name ="MailRoom"> <annotation > This is an abstract for Mailroom. Basically the Mailroom has a choice for consuming messages from either of the three. </annotation> <message name = "orderNotProcessed" type="data"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> <xsd:element name="orderProcessing" type="xsd:boolean"/> </message> <message name = "invoiceDetailsInput" type="request"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="price" type="xsd:string"/> </message> <message name = "invoiceDetailsOutput" type="response"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> <xsd:element name="invoiceResp" type="xsd:boolean"/> </message> <message name="invoiceSendOutput" type="response"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> </message> <message name="invoiceSendInput" type="request"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> </message> <message name = "getOrderDetailsInput" type="response"> <annotation > This captures the input consisting of customerId, orderId and quantity. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="amount" type="xsd:string"/> </message> <message name = "getOrderDetailsOutput" type="request"> <annotation > This is basically a blank message- request for a new order </annotation> </message> <sequence> <operation name="orderEntry"> <input message="getOrderDetailsOutput"/> <output message="getOrderDetailsInput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;orderEntry; </implementation> </operation> <choice> <consume> <input message="orderNotProcessed"/> </consume> <sequence> <consume> <input message="invoiceDetailsInput"/> </consume> <operation name="invoiceSend" > <input message="invoiceDetailsInput"/> <output message="invoiceDetailsOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;generateInvoice; </implementation> </operation> </sequence> </choice> </sequence> </abstract> <abstract name="Customer"> <annotation > This checks if the customer with the given id exists, returns a Boolean. </annotation> <operation name="checkExistingCustomer"> <participant select="Finance"/> <input message="existingCustomerInput"/> <output message="existingCustomerOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;checkCustomer; </implementation> </operation> </abstract> <abstract name="AccountLimit"> <annotation > This checks if the customer has its account within limits, returns a Boolean. </annotation> <message name="getPreviousOrderInput" type="request"> <annotation > This is of type 'request'. Basically this serves as input for the 'accountLimit' module of Finance. </annotation> <xsd:element name="customerId" type="xsd:string"/> </message> <message name="getPreviousOrderOutput" type="response"> <annotation > This is of type 'response'. Basically this serves as output for the 'accountLimit' module of Finance. </annotation> <xsd:element name="previousOrderAmt" type="xsd:string"/> </message> <message name="isAccountWithinLimitsInput" type="response"> <annotation > This is of type 'response'. Basically this serves as output for the 'accountLimit' module of Finance. </annotation> </message> <message name="isAccountWithinLimitsOutput" type="request"> <annotation > This is of type 'response'. Basically this serves as output for the 'accountLimit' module of Finance. </annotation> </message> <sequence> <operation name="getPreviousOrder"> <participant select="Finance"/> <input message="getPreviousOrderInput"/> <output message="getPreviousOrderOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;getPreviousOrder; </implementation> </operation> <operation name="checkAccountLimit"> <participant select="Finance"/> <input message="isAccountWithinLimitsInput"/> <output message="isAccountWithinLimitsOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;checkAccountLimit; </implementation> </operation> </sequence> </abstract> <abstract name="CreditHistory"> <annotation > This checks for the customer's credit History if it's a new customer, returns a Boolean. </annotation> <message name="isCreditHistoryAcceptInput" type="request"> <annotation > This is of type 'request'. Basically this serves as input for the 'creditHistory' module of Finance. </annotation> <xsd:element name="customerId" type="xsd:string"/> </message> <message name="isCreditHistoryAcceptOutput" type="response"> <annotation > This is of type 'response'. Basically this serves as output for the 'creditHistory' module of Finance. </annotation> <xsd:element name="creditHistoryResp" type="xsd:boolean"/> </message> <sequence> <operation name="checkCreditHistory"> <participant select="Finance"/> <input message="isCreditHistoryAcceptInput"/> <output message=" isCreditHistoryAcceptOutput "/> <implementation> urn:CheckExistingCust;mapperforSoap;x;checkCreditHistory; </implementation> </operation> </sequence> </abstract> <abstract name="Finance"> <annotation > This is an abstract for Finance function of Sokera Inc. Basically the Finance department checks if the customer is already existing. If yes, then it checks if the customer's accounts are within limits. The result of the same is intimated to Marketing.If a customer is not already existing, then its credit history is checked. If acceptable. Marketing is intimated. </annotation> <message name = "getOrderFinInput" type="data"> <annotation > This captures the order details and is of type 'data'. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="orderProcessor" type="OrderProcessor"/> </message> <message name = "prepareInvoiceInput" type="response"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="price" type="xsd:string"/> </message> <message name="prepareInvoiceOutput" type="request"> <annotation > This captures the order details and is of type 'data'. </annotation> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> <xsd:element name="customerId" type="xsd:string"/> </message> <message name="existingCustomerInput" type="request"> <annotation > This is of type 'request'. Basically this serves as input for the 'Customer' module of Finance. </annotation> <xsd:element name="customerId" type="xsd:string"/> </message> <message name="existingCustomerOutput" type="response"> <annotation > This is of type 'response'. Basically this serves as output for the 'Customer' module of Finance. </annotation> <xsd:element name="customerResp" type="xsd:boolean"/> </message> <message name="calInvoiceAmtInput" type="request"> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> </message> <message name="calInvoiceAmtOutput" type="response"> <xsd:element name="price" type="xsd:string"/> </message> <message name="updFinRejectOutput" type="request"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> </message> <message name="updFinRejectInput" type="response"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> </message> <message name="newAccountLimtRejOutput" type="request"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> </message> <message name="newAccountLimtRejInput" type="response"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> </message> <message name="accountLimtRejOutput" type="request"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> </message> <message name="accountLimtRejInput" type="response"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> </message> <ruleSet name="fixedQuantityCheck"> <rule condition="getOrderDetailsInput/quantity > 500"/> </ruleSet> <!-- The current invoice amt. should be <= 2*sales history OR $500 which ever is greater --> <ruleSet name="orderedQuantityCheck"> <rule condition="number(/ProcessData/getOrderDetailsInput/quantity) * number(/ProcessData/calInvoiceAmtOutput/price/) > 2 * number(/ProcessData/getPreviousOrderOutput/previousOrderAmt)"/> <rule ruleSet="fixedQuantityCheck" negative="false"/> </ruleSet> <sequence name="Finance"> <consume> <input message="getOrderFinInput"/> </consume> <operation name="calInvoiceAmt"> <participant select="Inventory"/> <output message="calInvoiceAmtInput"> <assign target="customerId" select="getOrderFinInput/customerId/text()"/> <assign target="quantity" select="getOrderFinInput/quantity/text()"/> <assign target="productId" select="getOrderFinInput/productId/text()"/> </output> <input message="calInvoiceAmtOutput"/> </operation> <operation name="isExistingCustomer"> <participant select="Customer"/> <output message="existingCustomerInput"> <assign target = "customerId" select="getOrderFinInput/customerId/text()"/> </output> <input message="existingCustomerOutput"/> </operation> <switch name="Customer"> <case condition="existingCustomerOutput/customerResp/text()='true'"> <sequence> <!-- should return sales history --> <operation name="getPreviousOrder"> <participant select="AccountLimit"/> <output message="getPreviousOrderInput"> <assign target = "customerId" select="getOrderFinInput/customerId/text()"/> </output> <input message="getPreviousOrderOutput"/> </operation> <switch name="isAccountwithinLimits"> <case ruleSet="orderedQuantityCheck" negative="false"> <!--checks acct limit.--> <sequence> <operation name="accountLimtRej" > <participant select="Inventory"/> <output message="accountLimtRejOutput"> <assign target="customerId" select="getOrderFinInput/customerId/text()"/> <assign target="orderId" select="getOrderFinInput/orderId/text()"/> </output> <input message="accountLimtRejInput"/> </operation> <produce> <participant select="getOrderFinInput/orderProcessor"/> <output message="orderCannotBeProcessed"/> </produce> </sequence> </case> <case ruleSet="orderedQuantityCheck" negative="true"> <produce> <participant select="getOrderFinInput/orderProcessor"/> <output message="orderCanBeProcessed"/> </produce> </case> <otherwise> <empty/> </otherwise> </switch> </sequence> </case> <case condition="existingCustomerOutput/customerResp/text()='false'"> <sequence> <operation name="chkCreditHistory"> <participant select="creditHistory"/> <output message="isCreditHistoryAcceptInput"> <assign target="customerId" select="getOrderFinInput/customerId/text()"/> </output> <input message="isCreditHistoryAcceptOutput"/> </operation> <switch name="isCreditHistoryAcceptable"> <case condition="isCreditHistoryAcceptOutput/creditHistoryResp/text() ='false'"> <sequence> <operation name="financeReject" > <participant select="Inventory"/> <output message="updFinRejectOutput"> <assign target="customerId" select="getOrderFinInput/customerId/text()"/> <assign target="orderId" select="getOrderFinInput/orderId/text()"/> </output> <input message="updFinRejectInput"/> </operation> <produce> <participant select="getOrderFinInput/orderProcessor"/> <output message="orderCannotBeProcessed"/> </produce> </sequence> </case> <case condition="isCreditHistoryAcceptOutput/creditHistoryResp/text() ='true'"> <switch name="isAccountwithinLimits"> <case ruleSet="fixedQuantityCheck" negative="false"> <sequence> <operation name="newAccountLimtRej" > <participant select="Inventory"/> <output message="newAccountLimtRejOutput"> <assign target="customerId" select="getOrderFinInput/customerId/text()"/> <assign target="orderId" select="getOrderFinInput/orderId/text()"/> </output> <input message="newAccountLimtRejInput"/> </operation> <produce> <participant select="getOrderFinInput/orderProcessor"/> <output message="orderCannotBeProcessed"/> </produce> </sequence> </case> <case ruleSet="orderedQuantityCheck" negative="true"> <produce> <participant select="getOrderFinInput/orderProcessor"/> <output message="orderCanBeProcessed"/> </produce> </case> <otherwise> <empty/> </otherwise> </switch> </case> <otherwise> <empty/> </otherwise> </switch> </sequence> </case> <otherwise> <empty/> </otherwise> </switch> <sequence> <operation name="prepinvoice"> <input message="prepareInvoiceOutput"/> <output message="prepareInvoiceInput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;prepInvoice; </implementation> </operation> </sequence> </sequence> </abstract> <abstract name="Inventory"> <annotation > This is to check if the Order for the quantity specified can be processed all in one shot. </annotation> <message name="fullOrderInput" type="request"> <annotation > This is of type 'request'. Basically it consists of 'quantity' and forms the input for FullOrder module of Manufacturing. The purpose is to check if the Order for the quantity specified can be processed all in one shot. </annotation> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> </message> <message name="fullOrderOutput" type="response"> <annotation > This is of type 'response' and forms the output for FullOrder module of Manufacturing. The response element is of type Boolean. </annotation> <xsd:element name="fulOrderResp" type="xsd:boolean"/> </message> <choice> <operation name="checkInventory"> <input message="fullOrderInput"/> <output message="fullOrderOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;checkFullOrder; </implementation> </operation> <operation name="inventoryUpdate"> <input message="inventoryOrderInput"/> <output message="inventoryOrderOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;updInventory; </implementation> </operation> <operation name="calculateInvoiceAmt"> <input message="calInvoiceAmtInput"/> <output message="calInvoiceAmtOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;getPrice; </implementation> </operation> <operation name="accountLimtRej"> <input message="accountLimtRejOutput"/> <output message="accountLimtRejInput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;oldAcctLimtRej; </implementation> </operation> <operation name="newAccountLimtRej"> <input message="newAccountLimtRejOutput"/> <output message="newAccountLimtRejInput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;newAcctLimtRej; </implementation> </operation> <operation name="shippingUpdFinRej"> <input message="updFinRejectOutput"/> <output message="updFinRejectInput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;shipUpdFinRej; </implementation> </operation> <operation name="shippingUpdInvInsuf"> <input message="updInvInsuffOutput"/> <output message="updInvInsuffInput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;shipUpdInvInsuff; </implementation> </operation> <operation name="shippingUpdShipd"> <input message="shippingOrderInput"/> <output message="shippingOrderOutput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;shipUpdShipped; </implementation> </operation> </choice> </abstract> <abstract name="Manufacturing"> <annotation > This is an abstract for Manufacturing function of Sokera Inc. Basically the Manufacturing department checks if the Full order can be processed. If yes, it goes ahead with production and intimates finance and Manufacturing and also Shipping. If not, Marketing and Finance are apprised accordingly. </annotation> <message name = "shipFullOrder" type="data"> <annotation > Message to shipment to ship the full order. </annotation> <xsd:element name="customerId" type="xsd:string"/> </message> <message name ="inventoryOrderInput" type="request"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> </message> <message name ="inventoryOrderOutput" type="response"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> <xsd:element name="quantityResp" type="xsd:boolean"/> </message> <message name ="inventoryNotPresent" type="request"> <annotation > This captures the input consisting of customerId, orderId and quantity.and is given to finance from Manufacturing upon production of the said amount. </annotation> <xsd:element name="quantityResp" type="xsd:boolean"/> </message> <message name="prepareBillInput" type="data"> <annotation > This captures the order details and is of type 'data'. </annotation> </message> <sequence name="ManufacturingTopAct"> <consume name="getOrderDetails"> <input message="getOrderManInput"/> </consume> <operation name="chkInventory"> <participant select="Inventory"/> <output message="fullOrderInput"> <assign target="quantity" select="getOrderManInput/quantity/text()"/> <assign target="productId" select="getOrderManInput/productId/text()"/> </output> <input message="fullOrderOutput"/> </operation> <switch name="InventoryStatus"> <case condition="fullOrderOutput/fulOrderResp/text()='false'"> <produce> <participant select="getOrderManInput/orderProcessor"/> <output message="inventoryNotPresent"/> </produce> </case> <case condition="fullOrderOutput/fulOrderResp/text()='true'"> <sequence> <produce> <participant select="Shipment"/> <output message="shipFullOrder"> <assign target="customerId" select="getOrderManInput/customerId/text()"/> <assign target="orderId" select="getOrderManInput/orderId/text()"/> </output> </produce> <operation name="updateInventory"> <participant select="Inventory"/> <output message="inventoryOrderInput"> <assign select="getOrderManInput/quantity/text()"/> <assign select="getOrderManInput/productId/text()"/> </output> <input message="inventoryOrderOutput"/> </operation> <produce> <participant select="getOrderManInput/orderProcessor"/> <output message="prepareBillInput"/> </produce> </sequence> </case> <otherwise> <empty/> </otherwise> </switch> </sequence> </abstract> <abstract name = "Marketing"> <annotation > This is an abstract for Marketing function of Sokera Inc. Basically the Marketing department is the one which lets the Process know the status of the Order placed. </annotation> <message name = "contactMarketingOutput" type="request"> <annotation > This captures the initial orderId details and is of type 'data'. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> </message> <message name = "contactMarketingInput" type="response"> <annotation > This captures the initial orderId details and is of type 'data'. </annotation> </message> <message name = "getOrderManInput" type="data"> <annotation > This captures the order details and is of type 'data'. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> <xsd:element name="productId" type="xsd:string"/> <xsd:element name="quantity" type="xsd:string"/> <xsd:element name="orderProcessor" type="OrderProcessor"/> </message> <sequence> <operation name="marketNegotiation"> <input message="contactMarketingOutput"/> <output message="contactMarketingInput"/> <implementation> urn:CheckExistingCust;mapperforSoap;x;updSpecialPrice; </implementation> </operation> </sequence> </abstract> <abstract name="Shipment"> <message name="shippingOrderInput" type="request"> <annotation > This is of type 'response' and forms the output message consisting of the reference of the Order object. </annotation> <xsd:element name="customerId" type="xsd:string"/> <xsd:element name="orderId" type="xsd:string"/> </message> <message name="shippingOrderOutput" type="response"> <annotation > This is of type 'response' and forms the output message consisting of the reference of the Order object. </annotation> <xsd:element name="shipResp" type="xsd:boolean"/> </message> <sequence name="Shipment"> <consume> <input message="shipFullOrder"/> </consume> <operation name="shipUpd"> <participant select="Inventory"/> <output message="shippingOrderInput"> <assign target="customerId" select="shipFullOrder/customerId/text()"/> <assign target="orderId" select="shipFullOrder/orderId/text()"/> </output> <input message="shippingOrderOutput"/> </operation> </sequence> </abstract> </package>
MysXSD.xsd
Description: MysXSD.xsd
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
