> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Split package (splitpkg.exe)

> Split package (splitpkg.exe)

Builds subset packages from a master package.

| Column 1 |
| - |
| splitpkg command \[/?] |

| Option | Description |
| - | - |
| command | Specifies the command to be performed. Supported commands are split, validate, and list. |
| /? | Shows Help text. To show Help for a specific command, use SPLITPKG \<command> /? |

## Commands

* [split command](#ID4EOB)
* [validate command](#ID4END)
* [list command](#ID4EAE)

### split command

Splits a package created with [makepkg](/build/core-features/common/packaging/deployment/makepkg.md) into one or more subset packages, according to a subset XML file.

| Column 1 |
| - |
| splitpkg split \[/v] \[/m] \[/j] \[/?] /f \<subsetfile> /p \<sourcepackage> \[/s \<subsetname>] /pd \<destinationdir> |

| Option | Description |
| - | - |
| /f | Specifies a subset XML file for defining how the subset packages are to be created. |
| /p | Specifies the path to the source package. For producing a compilation disc, this parameter can be provided more than once. |
| /s | Specifies an optional subset name. This option will produce only split packages that have the specified name. Multiple /s parameters can be added. |
| /pd | Specifies the destination path for the created subset packages. |
| /v | Enables verbose output of messages to the console. |
| /m | Specifies the maximum allowable size for a package, in GB. Default is 49 GB. For no restriction on size, pass a value of 0 (zero). |
| /j | All output from the tools will also emit a JSON object. |
| /? | Shows this Help text. |

### validate command

Runs the validation steps for detecting potential issues with splitting of a package. Takes the same parameters as those taken by the `splitpkg split` command, with the exception of a destination path, which isn't required for validation.

| Column 1 |
| - |
| splitpkg validate \[options] /f \<subsetfile> /p \<sourcepackage> \[/s \<subsetname>] |

### list command

For the specified subset file, lists the subset package-related information as JSON objects.

| Column 1 |
| - |
| splitpkg list \[/v] \[/?] /f \<subsetfile> |

| Option | Description |
| - | - |
| /f | Specifies a subset XML file for defining how the subset packages are to be created. |
| /v | Enables verbose output of messages to the console. |
| /? | Shows this Help text. |

## Package schema

The following schema is used to define how the package is to be split.

```
      
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Package" xmlns="" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

  <!--PACKAGE SCHEMA-->
  <xs:element name="Packages">
    <xs:complexType>
      <xs:choice minOccurs="1" maxOccurs="unbounded">
        <xs:element name="Package">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Include" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:attribute name="ChunkId" type="xs:string"/>
                  <xs:attribute name="Languages" type="xs:string"/>
                  <xs:attribute name="Devices" type="deviceType"/>
                  <xs:attribute name="ContentTypes" type="contentType" />
                  <xs:attribute name="Tags" type="xs:string" />
                  <xs:attribute name="Disc" type="xs:integer" />
                  <xs:attribute name="Features" type="xs:string" />
                </xs:complexType>
              </xs:element>
              <xs:element name="Exclude" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:attribute name="ChunkId" type="xs:string"/>
                  <xs:attribute name="Languages" type="xs:string"/>
                  <xs:attribute name="Devices" type="deviceType"/>
                  <xs:attribute name="ContentTypes" type="contentType" />
                  <xs:attribute name="Tags" type="xs:string" />
                  <xs:attribute name="Features" type="xs:string" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="Name" type="xs:string" use="required"/>
            <xs:attribute name="Description" type="xs:string" use="optional"/>
            <xs:attribute name="Source" type="xs:string" use="optional"/>
            <xs:attribute name="MaxDiscs" type="xs:string" use="optional"/>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="deviceType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Xbox-Durango"/>
      <xs:enumeration value="Xbox-Scorpio"/>
      <xs:enumeration value="Xbox-Lockhart"/>
      <xs:enumeration value="Xbox-Anaconda"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="contentType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SinglePlayer"/>
      <xs:enumeration value="MultiPlayer"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>  
```

## See also

[Deployment package schema](/build/core-features/common/packaging/deployment/atoc-deployment-schema.md)

[Make package (makepkg.exe)](/build/core-features/common/packaging/deployment/makepkg.md)


## Related topics

- [Command-line tools for PC development (contents)](/tools/tools-pc/commandlinetools/gr-commandlinetools-toc.md)
- [XBOX environment tools and APIs](/tools/tools-console/gc-xbox-tools-and-apis-toc.md)
- [Tools for streaming installation (contents)](/build/core-features/common/packaging/deployment/atoc-deployment-tools.md)
- [Deployment package schema and streaming install tools](/build/core-features/common/packaging/deployment/index.md)
- [Multi-disc functionality](/build/core-features/common/packaging/packaging-multi-disc.md)
