Example: Condensing an existing XPCML document

The following example illustrates how to condense an existing XPCML document. The example includes original XPCML source, the resulting condensed XPCML, and the extended schema.

Original XPCML source

     <?xml version="1.0" encoding="UTF-8"?>
      <xpcml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:noNamespaceSchemaLocation="xpcml.xsd" version="4.0">
       <program name="prog1" path="/QSYS.LIB/W95LIB.LIB/PROG1.PGM">
         <parameterList>
            <stringParm name="parm1" passDirection="in" passMode="value"
                  minvrm="V5R2M0" ccsid="37" length="10">Value 1</stringParm>
         </parameterList>
       </program>
      </xpcml>

Condensed XPCML source

     <?xml version="1.0" encoding="UTF-8"?>
     <xpcml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:noNamespaceSchemaLocation="myXSD.xsd" version="4.0">
      <program name="prog1" path="/QSYS.LIB/W95LIB.LIB/PROG1.PGM">
         <parameterList>
            <parm1_>Value 1</parm1_>
         </parameterList>
      </program>
     </xpcml>

Generated schema

     <!-- parm1's XSD definition -->
     <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
      <!-- Link back to XPCML.xsd -->
      <xs:include schemaLocation='xpcml.xsd'/>
       <xs:element name="parm1_" substitutionGroup="stringParmGroup" >
        <xs:complexType>
          <xs:simpleContent>
          <xs:restriction base="stringParmType">
             <!-- Attributes defined for parm1 -->
             <xs:attribute name="name" type="string50" fixed="parm1" />
             <xs:attribute name="length" type="xs:string" fixed="10" />
             <xs:attribute name="passMode" type="xs:string" fixed="value" />
             <xs:attribute name="ccsid" type="xs:string" fixed="37" />
             <xs:attribute name="minvrm" type="xs:string" fixed="V5R2M0" />
          </xs:restriction>
          </xs:simpleContent>
        </xs:complexType>
       </xs:element>
     </schema>