The CiviX Server API can be described in terms of how to make a request, and what to expect as the result.
The Content API describes the documents and directories available within the content library.
The CiviX Server content is divided into groups called aspects. The following aspects are currently available:
Many other aspects can be found on the landing page of www.bclaws.ca
You can browse the xml content by appending the aspect you want to www.bclaws.ca/EPLibraries_beta/content/
For example, by navigating to http://www.bclaws.ca/civix/content/complete
(or for Abbotsford Bylaw content by navigating to https://municipal.qp.gov.bc.ca/civix/content/coa/) you can get a listing of Meta data available at the highest level of the aspect.you can get a listing of Meta data available at the highest level of the aspect.
<root> <index> <CIVIX_DOCUMENT_TITLE>Statutes and Regulations</CIVIX_DOCUMENT_TITLE> <CIVIX_DOCUMENT_ID>statreg</CIVIX_DOCUMENT_ID> <CIVIX_INDEX_ID>statreg</CIVIX_INDEX_ID> <CIVIX_DOCUMENT_TYPE>index</CIVIX_DOCUMENT_TYPE> <CIVIX_INDEX_FIELDS>XPATH:chapter://*:chapter</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:desc://*:desc</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:oic://*:oic</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:term://*:term</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:regnum:/*[1]/*:regnum</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:type:/*[1]/name()</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:marginalnote://*:marginalnote</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:yearenacted:/*[1]/*:yearenacted</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:insert://*:insert</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:hnote://*:hnote</CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS> XPATH:amendment://text()[preceding::processing-instruction()[1][name() = 'amendment-start']] </CIVIX_INDEX_FIELDS> <CIVIX_INDEX_FIELDS>XPATH:title://*:title[1]</CIVIX_INDEX_FIELDS> </index> </root>
If the CIVIX_DOCUMENT_TYPE is "index" or "dir", you can navigate through the various index or directory levels by appending the CIVIX_DOCUMENT_ID to the url.
So in our example above you could append the CIVIX_DOCUMENT_ID "statreg" plus "/" to the url giving you http://www.bclaws.ca/civix/content/complete/statreg/
<root> <dir> <CIVIX_DOCUMENT_TITLE>-- A --</CIVIX_DOCUMENT_TITLE> <CIVIX_DOCUMENT_ID>524872423</CIVIX_DOCUMENT_ID> <CIVIX_INDEX_ID>statreg</CIVIX_INDEX_ID> <CIVIX_DOCUMENT_TYPE>dir</CIVIX_DOCUMENT_TYPE> <CIVIX_DOCUMENT_PARENT>statreg</CIVIX_DOCUMENT_PARENT> <CIVIX_DOCUMENT_ANCESTORS>statreg</CIVIX_DOCUMENT_ANCESTORS> <CIVIX_DOCUMENT_VISIBLE>true</CIVIX_DOCUMENT_VISIBLE> </dir> <dir> <CIVIX_DOCUMENT_TITLE>-- B --</CIVIX_DOCUMENT_TITLE> <CIVIX_DOCUMENT_ID>1944036832</CIVIX_DOCUMENT_ID> <CIVIX_INDEX_ID>statreg</CIVIX_INDEX_ID> <CIVIX_DOCUMENT_TYPE>dir</CIVIX_DOCUMENT_TYPE> <CIVIX_DOCUMENT_PARENT>statreg</CIVIX_DOCUMENT_PARENT> <CIVIX_DOCUMENT_ANCESTORS>statreg</CIVIX_DOCUMENT_ANCESTORS> <CIVIX_DOCUMENT_VISIBLE>true</CIVIX_DOCUMENT_VISIBLE> </dir> </root>
The content API gives consumers of the API a self-describing RESTFUL interface for navigating BCLaws content. Once a document type is reached (Meta data where CIVIX_DOCUMENT_TYPE is equal to "document") you can then use the Document API to interact with document content