<?xml version="1.0"  encoding="iso-8859-1" standalone="no"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->

<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">

<s1 title="Source Repository">

  <s2 title="Overview">
    <p>The &XercesCName; source code is stored in the Apache Git
       repository. The repository is public and everyone
       has read access.</p>

   <p>The repository can be viewed online at <jump href="https://gitbox.apache.org/repos/asf?p=xerces-c.git">https://gitbox.apache.org/repos/asf?p=xerces-c.git</jump></p>

   <p>The repository can be cloned via:</p>

<source>
git clone https://gitbox.apache.org/repos/asf/xerces-c.git
</source>

   <p>A writeable mirror of the same official repository is also present in GitHub at <jump href="https://github.com/apache/xerces-c/">https://github.com/apache/xerces-c/</jump> but the official mechanism for contributions remains attaching patches to issues filed in the Apache Jira instance at <jump href="https://issues.apache.org/jira/projects/XERCESC">https://issues.apache.org/jira/projects/XERCESC</jump></p>

   <p>Development generally takes place on the master branch, with legacy branches left open or closed depending on the status of older releases. At present, the master branch and the xerces-3.2 branches are open. Proposed work for a V3.3.0 release may be occurring on master.</p>

  </s2>
</s1>
