[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xmlbeans-cvs
Subject:    svn commit: r585749 - in /xmlbeans/trunk:
From:       cezar () apache ! org
Date:       2007-10-17 23:07:07
Message-ID: 20071017230707.E40F81A9832 () eris ! apache ! org
[Download RAW message or body]

Author: cezar
Date: Wed Oct 17 16:07:06 2007
New Revision: 585749

URL: http://svn.apache.org/viewvc?rev=585749&view=rev
Log:
Fix too specific assertions in Saver.
Add a test case for it.

checkintests pass


Added:
    xmlbeans/trunk/test/cases/xbean/xmlobject/wsdl.xml
Modified:
    xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java
    xmlbeans/trunk/test/src/xmlobject/checkin/SerializationTests.java

Modified: xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java?rev=585749&r1=585748&r2=585749&view=diff
 ==============================================================================
--- xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java (original)
+++ xmlbeans/trunk/src/store/org/apache/xmlbeans/impl/store/Saver.java Wed Oct 17 \
16:07:06 2007 @@ -907,6 +907,8 @@
             _in = _out = 0;
             _free = 0;
 
+            assert _buf==null || _free == (_in>=_out ? _buf.length - (_in - _out) : \
_out - _in ) : "_buf.length:" + _buf.length + " _in:" + _in + " _out:" + _out + " \
_free:" + _free; +
             if (encoding != null && !noSaveDecl)
             {
                 XmlDocumentProperties props = Locale.getDocProps( c, false );
@@ -1144,8 +1146,7 @@
 
         private void emit ( char ch )
         {
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in : "_buf:" + _buf + \
"_in:" + _in + " _out:" + _out + " _free:" + _free; +            assert _buf==null || \
_free == (_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : "_buf.length:" + \
_buf.length + " _in:" + _in + " _out:" + _out + " _free:" + _free;  
             preEmit( 1 );
 
@@ -1153,8 +1154,7 @@
 
             _in = (_in + 1) % _buf.length;
 
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in : "_buf:" + _buf + " \
_in:" + _in + " _out:" + _out + " _free:" + _free; +            assert _buf==null || \
_free == (_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : "_buf.length:" + \
_buf.length + " _in:" + _in + " _out:" + _out + " _free:" + _free;  }
 
         private void emit ( char ch1, char ch2 )
@@ -1171,8 +1171,7 @@
 
         private void emit ( String s )
         {
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in : "_buf:" + _buf + \
"_in:" + _in + " _out:" + _out + " _free:" + _free; +            assert _buf==null || \
_free == (_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : "_buf.length:" + \
_buf.length + " _in:" + _in + " _out:" + _out + " _free:" + _free;  
             int cch = s == null ? 0 : s.length();
 
@@ -1193,8 +1192,7 @@
                 _in = (_in + cch) % _buf.length;
             }
 
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in : "_buf:" + _buf + \
"_in:" + _in + " _out:" + _out + " _free:" + _free; +            assert _free == \
(_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : "_buf.length:" + _buf.length \
+ " _in:" + _in + " _out:" + _out + " _free:" + _free;  }
 
         private void emit ( SaveCur c )
@@ -1228,8 +1226,7 @@
         private boolean preEmit ( int cch )
         {
             assert cch >= 0;
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in : "_buf:" + _buf + \
"_in:" + _in + " _out:" + _out + " _free:" + _free; +            assert _buf==null || \
_free == (_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : "_buf.length:" + \
_buf.length + " _in:" + _in + " _out:" + _out + " _free:" + _free;  
             _lastEmitCch = cch;
 
@@ -1259,16 +1256,15 @@
             _free -= cch;
 
             assert _free >= 0;
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in - cch;
+            assert _buf==null || _free == (_in>=_out ? _buf.length - (_in - _out) : \
_out - _in ) - cch : "_buf.length:" + _buf.length + " _in:" + _in + " _out:" + _out + \
" _free:" + _free;  
             return false;
         }
 
         private void entitizeContent ( )
         {
-            assert _out == 0;
-            assert _free == _buf.length - _in;
+            assert _free >= 0;
+            assert _buf==null || _free == (_in>=_out ? _buf.length - (_in - _out) : \
_out - _in ) : "_buf.length:" + _buf.length + " _in:" + _in + " _out:" + _out + " \
_free:" + _free;  
             if (_lastEmitCch == 0)
                 return;
@@ -1567,6 +1563,7 @@
             _free -= dCch;
 
             assert _free >= 0;
+            assert _free == (_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : \
"_buf.length:" + _buf.length + " _in:" + _in + " _out:" + _out + " _free:" + _free;  
             return (i + dCch + 1) % _buf.length;
         }
@@ -1607,8 +1604,7 @@
             assert _free >= 0;
             assert cch > 0;
             assert cch >= _free;
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in : "_buf:" + _buf + \
"_in:" + _in + " _out:" + _out + " _free:" + _free; +            assert _buf==null || \
_free == (_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : "_buf.length:" + \
_buf.length + " _in:" + _in + " _out:" + _out + " _free:" + _free;  
             int newLen = _buf == null ? _initialBufSize : _buf.length * 2;
             int used = getAvailable();
@@ -1648,8 +1644,7 @@
             _buf = newBuf;
 
             assert _free >= 0;
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _buf==null || _free == _buf.length - _in : "_buf:" + _buf + \
"_in:" + _in + " _out:" + _out + " _free:" + _free; +            assert _buf==null || \
_free == (_in>=_out ? _buf.length - (_in - _out) : _out - _in ) : "_buf.length:" + \
_buf.length + " _in:" + _in + " _out:" + _out + " _free:" + _free;  
             return i;
         }
@@ -1666,6 +1661,8 @@
             _out = (_out + 1) % _buf.length;
             _free++;
 
+            assert _buf==null || _free == (_in>=_out ? _buf.length - (_in - _out) : \
_out - _in ) : "_buf.length:" + _buf.length + " _in:" + _in + " _out:" + _out + " \
_free:" + _free; +
             return ch;
         }
 
@@ -1706,6 +1703,8 @@
             _out = (_out + len) % _buf.length;
             _free += len;
 
+            assert _buf==null || _free == (_in>=_out ? _buf.length - (_in - _out) : \
_out - _in ) : "_buf.length:" + _buf.length + " _in:" + _in + " _out:" + _out + " \
_free:" + _free; +
             assert _free >= 0;
 
             return len;
@@ -1746,8 +1745,7 @@
 
                 _in = 0;
             }
-            assert _in >= _out : "_in:" + _in + " < _out:" + _out;
-            assert _free == _buf.length - _in;
+            assert _buf==null || _free == (_in>=_out ? _buf.length - (_in - _out) : \
_out - _in ) : "_buf.length:" + _buf.length + " _in:" + _in + " _out:" + _out + " \
_free:" + _free;  
             return charsAvailable;
         }
@@ -1785,7 +1783,7 @@
         private char[] _buf;
         /*
         _buf is a circular buffer, useful data is before _in up to _out, there are 2 \
                posible configurations:
-        1: _in<=_out  |data|_in  empty  _out|data|  ... this is the only case used \
here +        1: _in<=_out  |data|_in  empty  _out|data|
         2: _out<_in   |empty _out|data|_in  empty|
         _free is used to keep around the remaining empty space in the bufer so \
                assert _out==0 && _free == _buf.length - _in; 
          */

Added: xmlbeans/trunk/test/cases/xbean/xmlobject/wsdl.xml
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/cases/xbean/xmlobject/wsdl.xml?rev=585749&view=auto
 ==============================================================================
--- xmlbeans/trunk/test/cases/xbean/xmlobject/wsdl.xml (added)
+++ xmlbeans/trunk/test/cases/xbean/xmlobject/wsdl.xml Wed Oct 17 16:07:06 2007
@@ -0,0 +1,1149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" \
xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/" \
xmlns:cw="http://www.openuri.org/2002/04/wsdl/conversation/" \
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" \
xmlns:jms="http://www.openuri.org/2002/04/wsdl/jms/" \
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" \
xmlns:s="http://www.w3.org/2001/XMLSchema" \
xmlns:s0="http://www.telkomsel.com/soa/ProductCatalog/WS" \
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" \
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" \
targetNamespace="http://www.telkomsel.com/soa/ProductCatalog/WS"> +  <types>
+    <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" \
xmlns:ns="http://www.telkomsel.com/soa/ProductCatalog/200606" \
xmlns:ws="http://www.telkomsel.com/soa/ProductCatalog/WS" xmlns:com="commonj.sdo" \
elementFormDefault="qualified" \
targetNamespace="http://www.telkomsel.com/soa/ProductCatalog/WS"> +      <s:import \
namespace="http://www.telkomsel.com/soa/ProductCatalog/200606"/> +      <s:import \
namespace="commonj.sdo"/> +      <s:element name="getPackageDefinition">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="packageId" type="s:string" minOccurs="0"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackageDefinitionResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element ref="ns:PackageDefinition"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackageDefinitions">
+        <s:complexType>
+          <s:sequence/>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackageDefinitionsResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="getPackageDefinitionsResult" \
type="ws:ArrayOfPackageDefinitionDocument" minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="ArrayOfPackageDefinitionDocument" nillable="true" \
type="ws:ArrayOfPackageDefinitionDocument"/> +      <s:element \
name="getPackageDefinitionsByTariffId"> +        <s:complexType>
+          <s:sequence>
+            <s:element name="tariffId" type="s:string" minOccurs="0"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackageDefinitionsByTariffIdResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="getPackageDefinitionsByTariffIdResult" \
type="ws:ArrayOfPackageDefinitionDocument" minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackageDefinitionsByType">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="type" type="s:string" minOccurs="0"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackageDefinitionsByTypeResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="getPackageDefinitionsByTypeResult" \
type="ws:ArrayOfPackageDefinitionDocument" minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackagedProducts">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="packageCode" type="s:string" minOccurs="0"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getPackagedProductsResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="getPackagedProductsResult" \
type="ws:ArrayOfPackagedProductDocument" minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="ArrayOfPackagedProductDocument" nillable="true" \
type="ws:ArrayOfPackagedProductDocument"/> +      <s:element \
name="getProductIsInPackages"> +        <s:complexType>
+          <s:sequence>
+            <s:element name="productCode" type="s:string" minOccurs="0"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="getProductIsInPackagesResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="getProductIsInPackagesResult" \
type="ws:ArrayOfPackagedProductDocument" minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="submitArrayOfPackagedProduct">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="rootDataObject" type="ws:ArrayOfDatagraphDocument" \
minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="submitArrayOfPackagedProductResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="submitArrayOfPackagedProductResult" \
type="ws:ArrayOfProperties" minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="submitPackageDefinition">
+        <s:complexType>
+          <s:sequence>
+            <s:element ref="com:datagraph"/>
+          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:element name="submitPackageDefinitionResponse">
+        <s:complexType>
+          <s:sequence>
+            <s:element name="submitPackageDefinitionResult" \
type="ws:ArrayOfProperties" minOccurs="0"/> +          </s:sequence>
+        </s:complexType>
+      </s:element>
+      <s:complexType name="ArrayOfPackageDefinitionDocument">
+        <s:sequence>
+          <s:element ref="ns:PackageDefinition" minOccurs="0" \
maxOccurs="unbounded"/> +        </s:sequence>
+      </s:complexType>
+      <s:complexType name="ArrayOfPackagedProductDocument">
+        <s:sequence>
+          <s:element ref="ns:PackagedProduct" minOccurs="0" maxOccurs="unbounded"/>
+        </s:sequence>
+      </s:complexType>
+      <s:complexType name="ArrayOfDatagraphDocument">
+        <s:sequence>
+          <s:element ref="com:datagraph" minOccurs="0" maxOccurs="unbounded"/>
+        </s:sequence>
+      </s:complexType>
+      <s:complexType name="ArrayOfProperties">
+        <s:sequence>
+          <s:element name="Properties" type="ws:Map" nillable="true" minOccurs="0" \
maxOccurs="unbounded"/> +        </s:sequence>
+      </s:complexType>
+      <s:complexType name="Map">
+        <s:sequence>
+          <s:element name="item" nillable="true" minOccurs="0" \
maxOccurs="unbounded"> +            <s:complexType>
+              <s:sequence>
+                <s:element name="key" type="s:anyType" nillable="true"/>
+                <s:element name="value" type="s:anyType" nillable="true"/>
+              </s:sequence>
+            </s:complexType>
+          </s:element>
+        </s:sequence>
+      </s:complexType>
+    </s:schema>
+    <!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by Fajar Siswandaru \
(Visitek) --> +    <!-- SCM Revision $Id: ProductServiceCatalog.xsd,v 1.4 2006/10/20 \
08:34:18 pangestu Exp $ --> +    <xs:schema \
xmlns:pc="http://www.telkomsel.com/soa/ProductCatalog/200606" \
xmlns:xs="http://www.w3.org/2001/XMLSchema" \
targetNamespace="http://www.telkomsel.com/soa/ProductCatalog/200606" \
elementFormDefault="qualified" attributeFormDefault="unqualified"> +      \
<xs:complexType name="AttributeType"> +        <xs:sequence>
+          <xs:element name="Value" type="xs:string" nillable="true" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The value or default value of this \
attribute.</xs:documentation> +            </xs:annotation>
+          </xs:element>
+          <xs:element name="Description" type="xs:string" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>The description of this attribute</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="enumValues" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Optional, only needed to state valid value based on \
enumeration or list of valid values.</xs:documentation> +            </xs:annotation>
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="enumValue" minOccurs="0" maxOccurs="unbounded">
+                  <xs:complexType>
+                    <xs:sequence minOccurs="0">
+                      <xs:element name="description" type="xs:string" \
minOccurs="0"/> +                    </xs:sequence>
+                    <xs:attribute name="value" type="xs:string"/>
+                    <xs:attribute name="parentID" type="xs:string" use="optional"/>
+                    <xs:attribute name="attrName" type="xs:string" use="optional"/>
+                    <xs:attribute name="sequence" type="xs:integer" use="optional"/>
+                  </xs:complexType>
+                </xs:element>
+              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="parentID" type="xs:string" use="optional"/>
+        <xs:attribute name="name" type="xs:string" use="required"/>
+        <xs:attribute name="sequence" type="xs:integer" use="optional"/>
+        <xs:attribute name="attrType" type="xs:string" use="optional" \
default="xs:string"/> +        <xs:attribute name="isFinal" type="xs:boolean" \
use="optional" default="true"/> +        <xs:attribute name="isNullable" \
type="xs:boolean" use="optional" default="true"/> +        <xs:attribute \
name="domain" type="xs:string" use="optional"/> +      </xs:complexType>
+      <xs:complexType name="SettingAttributeType">
+        <xs:complexContent>
+          <xs:extension base="pc:AttributeType">
+            <xs:sequence minOccurs="0">
+              <xs:element name="Pragma" type="xs:string" minOccurs="0"/>
+            </xs:sequence>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="ProductServiceProfileAttributeType">
+        <xs:complexContent>
+          <xs:extension base="pc:SettingAttributeType">
+            <xs:attribute name="attrLevel" type="xs:string" use="optional"/>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="ServiceStateAttributeType">
+        <xs:complexContent>
+          <xs:extension base="pc:ProductServiceProfileAttributeType">
+            <xs:attribute name="parentState" type="xs:string" use="optional"/>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="EntityTypeDefinitionType">
+        <xs:sequence>
+          <xs:element name="description" type="xs:string" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="typeCode" type="xs:string" use="required"/>
+        <xs:attribute name="typeName"/>
+      </xs:complexType>
+      <xs:complexType name="ProductStateType">
+        <xs:sequence minOccurs="0">
+          <xs:element name="description" type="xs:string" minOccurs="0"/>
+          <xs:element name="ProductStateSpecs" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="ProductStateSpec" type="pc:StateSpecType" \
minOccurs="0" maxOccurs="unbounded"/> +              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="productID" type="xs:string" use="required"/>
+        <xs:attribute name="state" type="xs:string" use="required"/>
+      </xs:complexType>
+      <xs:complexType name="ServiceStateType">
+        <xs:sequence minOccurs="0">
+          <xs:element name="description" type="xs:string" minOccurs="0"/>
+          <xs:element name="ServiceStateSpecs" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="ServiceStateSpec" type="pc:StateSpecType" \
minOccurs="0" maxOccurs="unbounded"/> +              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="serviceID" type="xs:string" use="required"/>
+        <xs:attribute name="state" type="xs:string" use="required"/>
+      </xs:complexType>
+      <xs:complexType name="StateSpecType">
+        <xs:sequence>
+          <xs:element name="productID" type="xs:string" minOccurs="0"/>
+          <xs:element name="productState" type="xs:string" minOccurs="0"/>
+          <xs:element name="serviceID" minOccurs="0" type="xs:string"/>
+          <xs:element name="serviceState" minOccurs="0" type="xs:string"/>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="AssociationType">
+        <xs:attribute name="to" type="xs:string" use="required"/>
+        <xs:attribute name="assocName" type="xs:string" use="required"/>
+        <xs:attribute name="entityType" type="xs:string" use="optional"/>
+      </xs:complexType>
+      <xs:complexType name="ReferenceType">
+        <xs:sequence>
+          <xs:element name="Name" type="xs:string" minOccurs="0"/>
+          <xs:element name="Description" type="xs:string" minOccurs="0"/>
+          <xs:element minOccurs="0" type="xs:string" name="Type"/>
+          <xs:element minOccurs="0" type="xs:string" name="TariffCode"/>
+        </xs:sequence>
+        <xs:attribute name="code" type="xs:string" use="required"/>
+        <xs:attribute name="version" type="xs:string" use="optional"/>
+        <xs:attribute name="status" type="xs:integer" use="optional"/>
+      </xs:complexType>
+      <xs:complexType name="DefinitionType">
+        <xs:sequence>
+          <xs:element name="Name" type="xs:string"/>
+          <xs:element name="Description" type="xs:string" minOccurs="0"/>
+          <xs:element ref="pc:Attributes" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="code" type="xs:string" use="required"/>
+        <xs:attribute name="version" type="xs:string" use="optional"/>
+        <xs:attribute name="status" type="xs:integer" use="optional" default="1">
+          <xs:annotation>
+            <xs:documentation>The status: 1 is for Active</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:complexType>
+      <xs:complexType name="ServiceDefinitionType">
+        <xs:complexContent>
+          <xs:extension base="pc:DefinitionType">
+            <xs:sequence minOccurs="0">
+              <xs:element name="Dependencies" type="pc:ServiceDependenciesType" \
minOccurs="0"> +                <xs:annotation>
+                  <xs:documentation>Dependencies to other services subscription \
state for this service to be sucessfully \
provisioned/unprovisioned/unregistered.</xs:documentation> +                \
</xs:annotation> +              </xs:element>
+            </xs:sequence>
+            <xs:attribute name="typeCode" type="xs:string" use="optional">
+              <xs:annotation>
+                <xs:documentation>Used for logical grouping of \
services.</xs:documentation> +              </xs:annotation>
+            </xs:attribute>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="ProductDefinitionType">
+        <xs:complexContent>
+          <xs:extension base="pc:DefinitionType">
+            <xs:sequence>
+              <xs:element name="Associations" minOccurs="0">
+                <xs:complexType>
+                  <xs:sequence>
+                    <xs:element name="Association" type="pc:AssociationType" \
minOccurs="0" maxOccurs="unbounded"/> +                  </xs:sequence>
+                </xs:complexType>
+              </xs:element>
+            </xs:sequence>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="PackageDefinitionType">
+        <xs:complexContent>
+          <xs:extension base="pc:DefinitionType">
+            <xs:sequence minOccurs="0">
+              <xs:element name="PackageType" type="xs:string" minOccurs="0">
+                <xs:annotation>
+                  <xs:documentation>The package type, can be used for tagging like \
"Basic Package" or "Optional Package"</xs:documentation> +                \
</xs:annotation> +              </xs:element>
+              <xs:element name="TariffId" type="xs:string" minOccurs="0"/>
+            </xs:sequence>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="PackageSpecificationType">
+        <xs:complexContent>
+          <xs:extension base="pc:PackageDefinitionType">
+            <xs:sequence minOccurs="0">
+              <xs:element name="PackagedProducts" minOccurs="0">
+                <xs:complexType>
+                  <xs:sequence>
+                    <xs:element ref="pc:PackagedProduct" maxOccurs="unbounded"/>
+                  </xs:sequence>
+                </xs:complexType>
+              </xs:element>
+            </xs:sequence>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="ProductOfferingType">
+        <xs:complexContent>
+          <xs:extension base="pc:DefinitionType">
+            <xs:sequence>
+              <xs:element name="OfferedPackages" minOccurs="0">
+                <xs:complexType>
+                  <xs:sequence>
+                    <xs:element name="OfferedPackage" minOccurs="0" \
maxOccurs="unbounded"> +                      <xs:complexType>
+                        <xs:complexContent>
+                          <xs:extension base="pc:ReferenceType">
+                            <xs:attribute name="offeringTag" type="xs:string"/>
+                          </xs:extension>
+                        </xs:complexContent>
+                      </xs:complexType>
+                    </xs:element>
+                  </xs:sequence>
+                </xs:complexType>
+              </xs:element>
+            </xs:sequence>
+          </xs:extension>
+        </xs:complexContent>
+      </xs:complexType>
+      <xs:complexType name="ServiceStateConfigType">
+        <xs:sequence minOccurs="0">
+          <xs:element name="AttributeSettings" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="ServiceAttribute" type="pc:SettingAttributeType" \
minOccurs="0" maxOccurs="unbounded"/> +              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="serviceCode" type="xs:string" use="required"/>
+        <xs:attribute name="serviceName" type="xs:string" use="optional"/>
+        <xs:attribute name="subscriptionState" type="xs:string" use="optional" \
default="ACTIVE"/> +      </xs:complexType>
+      <xs:complexType name="ServiceSpecificationType">
+        <xs:sequence>
+          <xs:element ref="pc:ServiceDefinition"/>
+          <xs:element name="SubscriptionConfigurations" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element ref="pc:ServiceSubscriptionConfig" minOccurs="0" \
maxOccurs="unbounded"/> +              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+          <xs:element name="OfferedInProducts" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="Product" minOccurs="0" maxOccurs="unbounded">
+                  <xs:complexType>
+                    <xs:complexContent>
+                      <xs:extension base="pc:ReferenceType">
+                        <xs:sequence minOccurs="0">
+                          <xs:element name="StateMaps">
+                            <xs:complexType>
+                              <xs:sequence>
+                                <xs:element ref="pc:StateMap" minOccurs="0" \
maxOccurs="unbounded"/> +                              </xs:sequence>
+                            </xs:complexType>
+                          </xs:element>
+                          <xs:element ref="pc:ServiceProfile" minOccurs="0"/>
+                        </xs:sequence>
+                      </xs:extension>
+                    </xs:complexContent>
+                  </xs:complexType>
+                </xs:element>
+              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+      </xs:complexType>
+      <xs:complexType name="ProductServiceProfileType">
+        <xs:sequence>
+          <xs:element name="Description" type="xs:string" minOccurs="0"/>
+          <xs:element name="ServicesProfile" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="Service" minOccurs="0" maxOccurs="unbounded">
+                  <xs:complexType>
+                    <xs:sequence>
+                      <xs:element name="Attributes" minOccurs="0">
+                        <xs:complexType>
+                          <xs:sequence>
+                            <xs:element name="ServiceAttribute" \
type="pc:ProductServiceProfileAttributeType" minOccurs="0" maxOccurs="unbounded"/> +  \
</xs:sequence> +                        </xs:complexType>
+                      </xs:element>
+                      <xs:element name="SubsDependencies" \
type="pc:ServiceDependenciesType" minOccurs="0"> +                        \
<xs:annotation> +                          <xs:documentation>This element defines all \
provisioning / subscription dependencies for this service.</xs:documentation> +       \
</xs:annotation> +                      </xs:element>
+                    </xs:sequence>
+                    <xs:attribute name="serviceCode" type="xs:string" \
use="required"/> +                    <xs:attribute name="serviceState" \
type="xs:string" use="required"/> +                    <xs:attribute \
name="serviceName" type="xs:string" use="optional"/> +                    \
<xs:attribute name="serviceSubsTag" type="xs:string" use="optional"/> +               \
</xs:complexType> +                </xs:element>
+              </xs:sequence>
+            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="productCode" type="xs:string" use="optional"/>
+        <xs:attribute name="productSubState" type="xs:string" use="required"/>
+      </xs:complexType>
+      <xs:complexType name="ServiceStateAttributesType">
+        <xs:sequence>
+          <xs:element name="description" type="xs:string" minOccurs="0"/>
+          <xs:element name="Attributes" minOccurs="0">
+            <xs:complexType>
+              <xs:sequence>
+                <xs:element name="ServiceStateAttribute" \
type="pc:ServiceStateAttributeType" minOccurs="0" maxOccurs="unbounded"/> +           \
</xs:sequence> +            </xs:complexType>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="serviceCode" type="xs:string" use="required"/>
+        <xs:attribute name="serviceState" type="xs:string" use="required"/>
+      </xs:complexType>
+      <xs:complexType name="ServiceDependenciesType">
+        <xs:sequence>
+          <xs:element ref="pc:ServiceDependency" minOccurs="0" \
maxOccurs="unbounded"/> +        </xs:sequence>
+      </xs:complexType>
+      <xs:element name="Attributes">
+        <xs:complexType>
+          <xs:sequence minOccurs="0">
+            <xs:element ref="pc:Attribute" minOccurs="0" maxOccurs="unbounded"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="Attribute">
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="pc:AttributeType"/>
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="DomainProfile">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="Attribute" type="pc:AttributeType" minOccurs="0" \
maxOccurs="unbounded"/> +          </xs:sequence>
+          <xs:attribute name="domain" type="xs:string" use="required"/>
+          <xs:attribute name="entityCode" type="xs:string" use="optional"/>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ServiceTypeDefinition" type="pc:EntityTypeDefinitionType"/>
+      <xs:element name="ServiceReference" type="pc:ReferenceType"/>
+      <xs:element name="ServiceDefinition">
+        <xs:annotation>
+          <xs:documentation>Encapsulates the definition of \
service</xs:documentation> +        </xs:annotation>
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="pc:ServiceDefinitionType"/>
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ServiceDependency">
+        <xs:annotation>
+          <xs:documentation>The dependency definition to specific service \
subscription state.</xs:documentation> +        </xs:annotation>
+        <xs:complexType>
+          <xs:attribute name="refServiceCode" type="xs:string" use="optional">
+            <xs:annotation>
+              <xs:documentation>The reference to a service which dependencies are \
being stated. (optional)</xs:documentation> +            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="refSubState" type="xs:string" default="active">
+            <xs:annotation>
+              <xs:documentation>this dependency is applicable  to set this service \
subscription state defined on this attribute. The default is to be active \
provisioned.</xs:documentation> +            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="toServiceCode" type="xs:string" use="required">
+            <xs:annotation>
+              <xs:documentation>The reference to the dependent on service. \
Referenced by its service code.</xs:documentation> +            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="depSubState" type="xs:string" default="active">
+            <xs:annotation>
+              <xs:documentation>the referenced service must been already in the \
state defined by this attribute.</xs:documentation> +            </xs:annotation>
+          </xs:attribute>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ServiceSpecification" type="pc:ServiceSpecificationType"/>
+      <xs:element name="ServiceSubscriptionConfig">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:choice>
+              <xs:sequence>
+                <xs:element name="ServiceState" type="xs:string">
+                  <xs:annotation>
+                    <xs:documentation>used to specify this configuration is valid \
for specific subscription state regardless of product.</xs:documentation> +           \
</xs:annotation> +                </xs:element>
+                <xs:element name="Description" type="xs:string" nillable="true" \
minOccurs="0"> +                  <xs:annotation>
+                    <xs:documentation>The description of this subscription \
configuration which either based on state or bound to specific product. (ie: the \
description for a service subscription configuration with state = BLOCKOUTGOING for \
Call Barring service is "Block outgoing call")</xs:documentation> +                  \
</xs:annotation> +                </xs:element>
+              </xs:sequence>
+              <xs:element name="ProductCode" type="xs:string">
+                <xs:annotation>
+                  <xs:documentation>used to specify this configuration is valid for \
only in the context of a subscription to a specific product regardless of service's \
state.</xs:documentation> +                </xs:annotation>
+              </xs:element>
+            </xs:choice>
+            <xs:element name="Attributes">
+              <xs:annotation>
+                <xs:documentation>The attribute setting / the service attribute \
configuration.</xs:documentation> +              </xs:annotation>
+              <xs:complexType>
+                <xs:sequence>
+                  <xs:element name="ServiceAttribute" type="pc:SettingAttributeType" \
minOccurs="0" maxOccurs="unbounded"/> +                </xs:sequence>
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+          <xs:attribute name="serviceCode" type="xs:string" use="optional">
+            <xs:annotation>
+              <xs:documentation>The referenced service code which subscription \
configuration are defined under this element.</xs:documentation> +            \
</xs:annotation> +          </xs:attribute>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ServiceProfile">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="StateConfiguration" type="pc:ServiceStateConfigType" \
minOccurs="0" maxOccurs="unbounded"/> +          </xs:sequence>
+          <xs:attribute name="serviceCode" type="xs:string" use="optional"/>
+          <xs:attribute name="inProductCode" type="xs:string" use="optional"/>
+          <xs:attribute name="serviceSubsTag" type="xs:string" use="optional"/>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="StateMap">
+        <xs:complexType>
+          <xs:attribute name="ProductSubscriptionState" type="xs:string" \
use="required"/> +          <xs:attribute name="ServiceSubscriptionState" \
type="xs:string" use="required"/> +        </xs:complexType>
+      </xs:element>
+      <xs:element name="ProductOffering" type="pc:ProductOfferingType"/>
+      <xs:element name="ProductReference" type="pc:ReferenceType" nillable="true"/>
+      <xs:element name="ProductService">
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="pc:ServiceDefinitionType">
+              <xs:attribute name="productCode" type="xs:string" use="optional"/>
+              <xs:attribute name="serviceSubsTag" type="xs:string" use="optional"/>
+            </xs:extension>
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ProductDefinition" type="pc:ProductDefinitionType" \
nillable="true"> +        <xs:annotation>
+          <xs:documentation>Encapsulates the definition of \
product</xs:documentation> +        </xs:annotation>
+      </xs:element>
+      <xs:element name="ProductSpecification">
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="pc:ProductDefinitionType">
+              <xs:sequence>
+                <xs:element name="IncludedServices" minOccurs="0">
+                  <xs:complexType>
+                    <xs:sequence>
+                      <xs:element ref="pc:ProductService" minOccurs="0" \
maxOccurs="unbounded"/> +                    </xs:sequence>
+                  </xs:complexType>
+                </xs:element>
+                <xs:element name="SubscriptionConfiguration" minOccurs="0">
+                  <xs:complexType>
+                    <xs:sequence>
+                      <xs:element ref="pc:ProductServiceProfile" minOccurs="0" \
maxOccurs="unbounded"/> +                    </xs:sequence>
+                  </xs:complexType>
+                </xs:element>
+              </xs:sequence>
+            </xs:extension>
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ProductServiceProfile">
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="pc:ProductServiceProfileType"/>
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="PackageReference" type="pc:ReferenceType"/>
+      <xs:element name="PackageDefinition" type="pc:PackageDefinitionType" \
nillable="true"> +        <xs:annotation>
+          <xs:documentation>Encapsulates the definition of a \
package</xs:documentation> +        </xs:annotation>
+      </xs:element>
+      <xs:element name="PackageSpecification" type="pc:PackageSpecificationType" \
nillable="true"/> +      <xs:element name="PackagedProduct" nillable="true">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="ProductCode" type="xs:string"/>
+            <xs:element name="PackagingTag" type="xs:string"/>
+            <xs:element name="TariffId" type="xs:string"/>
+            <xs:element name="ProductName" type="xs:string" minOccurs="0"/>
+          </xs:sequence>
+          <xs:attribute name="packageCode" type="xs:string" use="required"/>
+          <xs:attribute name="packageName" type="xs:string" use="optional"/>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ProductStates" nillable="true">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="ProductState" type="pc:ProductStateType" minOccurs="0" \
maxOccurs="unbounded"/> +          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ServiceStates" nillable="true">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="ServiceState" type="pc:ServiceStateType" minOccurs="0" \
maxOccurs="unbounded"/> +          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="ServiceStatesAttributes" nillable="true">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="ServiceStateAttributes" \
type="pc:ServiceStateAttributesType" minOccurs="0" maxOccurs="unbounded"/> +          \
</xs:sequence> +        </xs:complexType>
+      </xs:element>
+      <xs:element name="ArrayOfCodes">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="Code" type="xs:string" minOccurs="0" \
maxOccurs="unbounded"/> +          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+    </xs:schema>
+        <xsd:schema xmlns:sdo="commonj.sdo" \
xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="commonj.sdo"> +      \
<!-- Service Data Objects +     Version 1.0
+     Licensed Materials - Property of BEA and IBM
+ 
+     Â © Copyright BEA Systems, Inc. and International Business Machines Corp 2003. \
All rights reserved. +  -->
+      <xsd:element name="datagraph" type="sdo:DataGraphType"/>
+      <xsd:complexType name="DataGraphType">
+        <xsd:complexContent>
+          <xsd:extension base="sdo:BaseDataGraphType">
+            <xsd:sequence>
+              <xsd:any namespace="##other" processContents="lax" minOccurs="0"/>
+            </xsd:sequence>
+          </xsd:extension>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name="BaseDataGraphType" abstract="true">
+        <xsd:sequence>
+          <xsd:element name="models" type="sdo:ModelsType" minOccurs="0"/>
+          <xsd:element name="xsd" type="sdo:XSDType" minOccurs="0"/>
+          <xsd:element name="changeSummary" type="sdo:ChangeSummaryType" \
minOccurs="0"/> +        </xsd:sequence>
+        <xsd:anyAttribute namespace="##other" processContents="lax"/>
+      </xsd:complexType>
+      <xsd:complexType name="ModelsType">
+        <xsd:annotation>
+          <xsd:documentation>Expected type is emof:Package.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+          <xsd:any namespace="##other" processContents="lax" minOccurs="0" \
maxOccurs="unbounded"/> +        </xsd:sequence>
+      </xsd:complexType>
+      <xsd:complexType name="XSDType">
+        <xsd:annotation>
+          <xsd:documentation>Expected type is xsd:schema.</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+          <xsd:any namespace="http://www.w3.org/2001/XMLSchema" \
processContents="lax" minOccurs="0" maxOccurs="unbounded"/> +        </xsd:sequence>
+      </xsd:complexType>
+      <xsd:complexType name="ChangeSummaryType">
+        <xsd:sequence>
+          <xsd:any namespace="##any" processContents="lax" minOccurs="0" \
maxOccurs="unbounded"/> +        </xsd:sequence>
+        <xsd:attribute name="create" type="xsd:string"/>
+        <xsd:attribute name="delete" type="xsd:string"/>
+      </xsd:complexType>
+    </xsd:schema>
+    
+  </types>
+  <message name="getPackageDefinitionSoapIn">
+    <part name="parameters" element="s0:getPackageDefinition"/>
+  </message>
+  <message name="getPackageDefinitionSoapOut">
+    <part name="parameters" element="s0:getPackageDefinitionResponse"/>
+  </message>
+  <message name="getPackageDefinitionsSoapIn">
+    <part name="parameters" element="s0:getPackageDefinitions"/>
+  </message>
+  <message name="getPackageDefinitionsSoapOut">
+    <part name="parameters" element="s0:getPackageDefinitionsResponse"/>
+  </message>
+  <message name="getPackageDefinitionsByTariffIdSoapIn">
+    <part name="parameters" element="s0:getPackageDefinitionsByTariffId"/>
+  </message>
+  <message name="getPackageDefinitionsByTariffIdSoapOut">
+    <part name="parameters" element="s0:getPackageDefinitionsByTariffIdResponse"/>
+  </message>
+  <message name="getPackageDefinitionsByTypeSoapIn">
+    <part name="parameters" element="s0:getPackageDefinitionsByType"/>
+  </message>
+  <message name="getPackageDefinitionsByTypeSoapOut">
+    <part name="parameters" element="s0:getPackageDefinitionsByTypeResponse"/>
+  </message>
+  <message name="getPackagedProductsSoapIn">
+    <part name="parameters" element="s0:getPackagedProducts"/>
+  </message>
+  <message name="getPackagedProductsSoapOut">
+    <part name="parameters" element="s0:getPackagedProductsResponse"/>
+  </message>
+  <message name="getProductIsInPackagesSoapIn">
+    <part name="parameters" element="s0:getProductIsInPackages"/>
+  </message>
+  <message name="getProductIsInPackagesSoapOut">
+    <part name="parameters" element="s0:getProductIsInPackagesResponse"/>
+  </message>
+  <message name="submitArrayOfPackagedProductSoapIn">
+    <part name="parameters" element="s0:submitArrayOfPackagedProduct"/>
+  </message>
+  <message name="submitArrayOfPackagedProductSoapOut">
+    <part name="parameters" element="s0:submitArrayOfPackagedProductResponse"/>
+  </message>
+  <message name="submitPackageDefinitionSoapIn">
+    <part name="parameters" element="s0:submitPackageDefinition"/>
+  </message>
+  <message name="submitPackageDefinitionSoapOut">
+    <part name="parameters" element="s0:submitPackageDefinitionResponse"/>
+  </message>
+  <message name="getPackageDefinitionHttpGetIn">
+    <part name="packageId" type="s:string"/>
+  </message>
+  <message name="getPackageDefinitionHttpGetOut">
+    <part xmlns:s1="http://www.telkomsel.com/soa/ProductCatalog/200606" name="Body" \
element="s1:PackageDefinition"/> +  </message>
+  <message name="getPackageDefinitionsHttpGetIn"/>
+  <message name="getPackageDefinitionsHttpGetOut">
+    <part name="Body" element="s0:ArrayOfPackageDefinitionDocument"/>
+  </message>
+  <message name="getPackageDefinitionsByTariffIdHttpGetIn">
+    <part name="tariffId" type="s:string"/>
+  </message>
+  <message name="getPackageDefinitionsByTariffIdHttpGetOut">
+    <part name="Body" element="s0:ArrayOfPackageDefinitionDocument"/>
+  </message>
+  <message name="getPackageDefinitionsByTypeHttpGetIn">
+    <part name="type" type="s:string"/>
+  </message>
+  <message name="getPackageDefinitionsByTypeHttpGetOut">
+    <part name="Body" element="s0:ArrayOfPackageDefinitionDocument"/>
+  </message>
+  <message name="getPackagedProductsHttpGetIn">
+    <part name="packageCode" type="s:string"/>
+  </message>
+  <message name="getPackagedProductsHttpGetOut">
+    <part name="Body" element="s0:ArrayOfPackagedProductDocument"/>
+  </message>
+  <message name="getProductIsInPackagesHttpGetIn">
+    <part name="productCode" type="s:string"/>
+  </message>
+  <message name="getProductIsInPackagesHttpGetOut">
+    <part name="Body" element="s0:ArrayOfPackagedProductDocument"/>
+  </message>
+  <message name="getPackageDefinitionHttpPostIn">
+    <part name="packageId" type="s:string"/>
+  </message>
+  <message name="getPackageDefinitionHttpPostOut">
+    <part xmlns:s1="http://www.telkomsel.com/soa/ProductCatalog/200606" name="Body" \
element="s1:PackageDefinition"/> +  </message>
+  <message name="getPackageDefinitionsHttpPostIn"/>
+  <message name="getPackageDefinitionsHttpPostOut">
+    <part name="Body" element="s0:ArrayOfPackageDefinitionDocument"/>
+  </message>
+  <message name="getPackageDefinitionsByTariffIdHttpPostIn">
+    <part name="tariffId" type="s:string"/>
+  </message>
+  <message name="getPackageDefinitionsByTariffIdHttpPostOut">
+    <part name="Body" element="s0:ArrayOfPackageDefinitionDocument"/>
+  </message>
+  <message name="getPackageDefinitionsByTypeHttpPostIn">
+    <part name="type" type="s:string"/>
+  </message>
+  <message name="getPackageDefinitionsByTypeHttpPostOut">
+    <part name="Body" element="s0:ArrayOfPackageDefinitionDocument"/>
+  </message>
+  <message name="getPackagedProductsHttpPostIn">
+    <part name="packageCode" type="s:string"/>
+  </message>
+  <message name="getPackagedProductsHttpPostOut">
+    <part name="Body" element="s0:ArrayOfPackagedProductDocument"/>
+  </message>
+  <message name="getProductIsInPackagesHttpPostIn">
+    <part name="productCode" type="s:string"/>
+  </message>
+  <message name="getProductIsInPackagesHttpPostOut">
+    <part name="Body" element="s0:ArrayOfPackagedProductDocument"/>
+  </message>
+  <portType name="PackageDataSoap">
+    <operation name="getPackageDefinition">
+      <input message="s0:getPackageDefinitionSoapIn"/>
+      <output message="s0:getPackageDefinitionSoapOut"/>
+    </operation>
+    <operation name="getPackageDefinitions">
+      <input message="s0:getPackageDefinitionsSoapIn"/>
+      <output message="s0:getPackageDefinitionsSoapOut"/>
+    </operation>
+    <operation name="getPackageDefinitionsByTariffId">
+      <input message="s0:getPackageDefinitionsByTariffIdSoapIn"/>
+      <output message="s0:getPackageDefinitionsByTariffIdSoapOut"/>
+    </operation>
+    <operation name="getPackageDefinitionsByType">
+      <input message="s0:getPackageDefinitionsByTypeSoapIn"/>
+      <output message="s0:getPackageDefinitionsByTypeSoapOut"/>
+    </operation>
+    <operation name="getPackagedProducts">
+      <input message="s0:getPackagedProductsSoapIn"/>
+      <output message="s0:getPackagedProductsSoapOut"/>
+    </operation>
+    <operation name="getProductIsInPackages">
+      <input message="s0:getProductIsInPackagesSoapIn"/>
+      <output message="s0:getProductIsInPackagesSoapOut"/>
+    </operation>
+    <operation name="submitArrayOfPackagedProduct">
+      <input message="s0:submitArrayOfPackagedProductSoapIn"/>
+      <output message="s0:submitArrayOfPackagedProductSoapOut"/>
+    </operation>
+    <operation name="submitPackageDefinition">
+      <input message="s0:submitPackageDefinitionSoapIn"/>
+      <output message="s0:submitPackageDefinitionSoapOut"/>
+    </operation>
+  </portType>
+  <portType name="PackageDataHttpGet">
+    <operation name="getPackageDefinition">
+      <input message="s0:getPackageDefinitionHttpGetIn"/>
+      <output message="s0:getPackageDefinitionHttpGetOut"/>
+    </operation>
+    <operation name="getPackageDefinitions">
+      <input message="s0:getPackageDefinitionsHttpGetIn"/>
+      <output message="s0:getPackageDefinitionsHttpGetOut"/>
+    </operation>
+    <operation name="getPackageDefinitionsByTariffId">
+      <input message="s0:getPackageDefinitionsByTariffIdHttpGetIn"/>
+      <output message="s0:getPackageDefinitionsByTariffIdHttpGetOut"/>
+    </operation>
+    <operation name="getPackageDefinitionsByType">
+      <input message="s0:getPackageDefinitionsByTypeHttpGetIn"/>
+      <output message="s0:getPackageDefinitionsByTypeHttpGetOut"/>
+    </operation>
+    <operation name="getPackagedProducts">
+      <input message="s0:getPackagedProductsHttpGetIn"/>
+      <output message="s0:getPackagedProductsHttpGetOut"/>
+    </operation>
+    <operation name="getProductIsInPackages">
+      <input message="s0:getProductIsInPackagesHttpGetIn"/>
+      <output message="s0:getProductIsInPackagesHttpGetOut"/>
+    </operation>
+  </portType>
+  <portType name="PackageDataHttpPost">
+    <operation name="getPackageDefinition">
+      <input message="s0:getPackageDefinitionHttpPostIn"/>
+      <output message="s0:getPackageDefinitionHttpPostOut"/>
+    </operation>
+    <operation name="getPackageDefinitions">
+      <input message="s0:getPackageDefinitionsHttpPostIn"/>
+      <output message="s0:getPackageDefinitionsHttpPostOut"/>
+    </operation>
+    <operation name="getPackageDefinitionsByTariffId">
+      <input message="s0:getPackageDefinitionsByTariffIdHttpPostIn"/>
+      <output message="s0:getPackageDefinitionsByTariffIdHttpPostOut"/>
+    </operation>
+    <operation name="getPackageDefinitionsByType">
+      <input message="s0:getPackageDefinitionsByTypeHttpPostIn"/>
+      <output message="s0:getPackageDefinitionsByTypeHttpPostOut"/>
+    </operation>
+    <operation name="getPackagedProducts">
+      <input message="s0:getPackagedProductsHttpPostIn"/>
+      <output message="s0:getPackagedProductsHttpPostOut"/>
+    </operation>
+    <operation name="getProductIsInPackages">
+      <input message="s0:getProductIsInPackagesHttpPostIn"/>
+      <output message="s0:getProductIsInPackagesHttpPostOut"/>
+    </operation>
+  </portType>
+  <binding name="PackageDataSoap" type="s0:PackageDataSoap">
+    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" \
style="document"/> +    <operation name="getPackageDefinition">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/getPackageDefinition" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitions">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/getPackageDefinitions" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitionsByTariffId">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/getPackageDefinitionsByTariffId" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitionsByType">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/getPackageDefinitionsByType" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getPackagedProducts">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/getPackagedProducts" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="getProductIsInPackages">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/getProductIsInPackages" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="submitArrayOfPackagedProduct">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/submitArrayOfPackagedProduct" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+    <operation name="submitPackageDefinition">
+      <soap:operation \
soapAction="http://www.telkomsel.com/soa/ProductCatalog/WS/submitPackageDefinition" \
style="document"/> +      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
+  </binding>
+  <binding name="PackageDataHttpGet" type="s0:PackageDataHttpGet">
+    <http:binding verb="GET"/>
+    <operation name="getPackageDefinition">
+      <http:operation location="/getPackageDefinition"/>
+      <input>
+        <http:urlEncoded/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitions">
+      <http:operation location="/getPackageDefinitions"/>
+      <input>
+        <http:urlEncoded/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitionsByTariffId">
+      <http:operation location="/getPackageDefinitionsByTariffId"/>
+      <input>
+        <http:urlEncoded/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitionsByType">
+      <http:operation location="/getPackageDefinitionsByType"/>
+      <input>
+        <http:urlEncoded/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackagedProducts">
+      <http:operation location="/getPackagedProducts"/>
+      <input>
+        <http:urlEncoded/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getProductIsInPackages">
+      <http:operation location="/getProductIsInPackages"/>
+      <input>
+        <http:urlEncoded/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+  </binding>
+  <binding name="PackageDataHttpPost" type="s0:PackageDataHttpPost">
+    <http:binding verb="POST"/>
+    <operation name="getPackageDefinition">
+      <http:operation location="/getPackageDefinition"/>
+      <input>
+        <mime:content type="application/x-www-form-urlencoded"/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitions">
+      <http:operation location="/getPackageDefinitions"/>
+      <input>
+        <mime:content type="application/x-www-form-urlencoded"/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitionsByTariffId">
+      <http:operation location="/getPackageDefinitionsByTariffId"/>
+      <input>
+        <mime:content type="application/x-www-form-urlencoded"/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackageDefinitionsByType">
+      <http:operation location="/getPackageDefinitionsByType"/>
+      <input>
+        <mime:content type="application/x-www-form-urlencoded"/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getPackagedProducts">
+      <http:operation location="/getPackagedProducts"/>
+      <input>
+        <mime:content type="application/x-www-form-urlencoded"/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+    <operation name="getProductIsInPackages">
+      <http:operation location="/getProductIsInPackages"/>
+      <input>
+        <mime:content type="application/x-www-form-urlencoded"/>
+      </input>
+      <output>
+        <mime:mimeXml part="Body"/>
+      </output>
+    </operation>
+  </binding>
+  <service name="PackageData">
+    <port name="PackageDataSoap" binding="s0:PackageDataSoap">
+      <soap:address \
location="http://eaidapp1:7001/ProductCatalogWS/PackageData.jws"/> +    </port>
+    <port name="PackageDataHttpGet" binding="s0:PackageDataHttpGet">
+      <http:address \
location="http://eaidapp1:7001/ProductCatalogWS/PackageData.jws"/> +    </port>
+    <port name="PackageDataHttpPost" binding="s0:PackageDataHttpPost">
+      <http:address \
location="http://eaidapp1:7001/ProductCatalogWS/PackageData.jws"/> +    </port>
+  </service>
+</definitions>
\ No newline at end of file

Modified: xmlbeans/trunk/test/src/xmlobject/checkin/SerializationTests.java
URL: http://svn.apache.org/viewvc/xmlbeans/trunk/test/src/xmlobject/checkin/SerializationTests.java?rev=585749&r1=585748&r2=585749&view=diff
 ==============================================================================
--- xmlbeans/trunk/test/src/xmlobject/checkin/SerializationTests.java (original)
+++ xmlbeans/trunk/test/src/xmlobject/checkin/SerializationTests.java Wed Oct 17 \
16:07:06 2007 @@ -25,6 +25,11 @@
 import com.easypo.XmlShipperBean;
 import com.easypo.XmlPurchaseOrderDocumentBean;
 import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.SchemaTypeLoader;
+import org.apache.xmlbeans.XmlBeans;
+import org.apache.xmlbeans.XmlOptions;
+import org.apache.xmlbeans.impl.xb.xsdschema.SchemaDocument;
+import org.xml.sax.InputSource;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -32,6 +37,12 @@
 import java.io.ObjectOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ObjectInputStream;
+import java.io.File;
+import java.io.Reader;
+import java.util.List;
+import java.util.ArrayList;
+
+import tools.util.JarUtil;
 
 public class SerializationTests extends TestCase
 {
@@ -128,5 +139,34 @@
         Assert.assertEquals(true, neworder.isSetShipper());
         Assert.assertEquals("UPS", neworder.getShipper().getName());
         Assert.assertEquals(new BigDecimal("0.74"), \
neworder.getShipper().getPerOunceRate()); +    }
+
+    public void testWsdlSerialization()
+    {
+        // test for TextSaver
+        try
+        {
+            File wsdlFile = \
JarUtil.getResourceFromJarasFile("xbean/xmlobject/wsdl.xml"); +
+            List loaders = new ArrayList();
+            loaders.add(SchemaDocument.type.getTypeSystem());
+            SchemaTypeLoader[] loadersArr = (SchemaTypeLoader[])loaders.toArray(new \
SchemaTypeLoader[1]); +            SchemaTypeLoader loader = \
XmlBeans.typeLoaderUnion(loadersArr); +
+            XmlOptions options = new XmlOptions();
+            options.setLoadLineNumbers();
+            XmlObject wsdlObj = (XmlObject) loader.parse(wsdlFile, XmlObject.type, \
options); +
+            Reader reader = wsdlObj.newReader();
+            InputSource source = new InputSource(reader);
+            source.setSystemId("");
+
+
+            XmlObject wsdlDefinitions = XmlObject.Factory.parse(reader);
+        }
+        catch (Exception e)
+        {
+            throw new RuntimeException(e);
+        }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic