001// ***************************************************************************************************************************
002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
003// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
005// * with the License.  You may obtain a copy of the License at                                                              *
006// *                                                                                                                         *
007// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
008// *                                                                                                                         *
009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
011// * specific language governing permissions and limitations under the License.                                              *
012// ***************************************************************************************************************************
013package org.apache.juneau.jena;
014
015import java.util.*;
016
017import org.apache.juneau.jena.annotation.*;
018import org.apache.juneau.utils.*;
019import org.apache.juneau.xml.*;
020
021/**
022 * Configurable properties common to both the {@link RdfSerializer} and {@link RdfParser} classes.
023 */
024public interface RdfCommon {
025
026   /**
027    * Property prefix.
028    */
029   static final String PREFIX = "RdfCommon";
030
031   /**
032    * Maps RDF writer names to property prefixes that apply to them.
033    */
034   static final Map<String,String> LANG_PROP_MAP = new AMap<String,String>()
035      .append("RDF/XML","rdfXml.")
036      .append("RDF/XML-ABBREV","rdfXml.")
037      .append("N3","n3.")
038      .append("N3-PP","n3.")
039      .append("N3-PLAIN","n3.")
040      .append("N3-TRIPLES","n3.")
041      .append("TURTLE","n3.")
042      .append("N-TRIPLE","ntriple.");
043
044   /**
045    * Configuration property:  RDF language.
046    *
047    * <h5 class='section'>Property:</h5>
048    * <ul class='spaced-list'>
049    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_language RDF_language}
050    *    <li><b>Name:</b>  <js>"RdfCommon.language.s"</js>
051    *    <li><b>Data type:</b>  <c>String</c>
052    *    <li><b>System property:</b>  <c>RdfCommon.language</c>
053    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_LANGUAGE</c>
054    *    <li><b>Default:</b>  <js>"RDF/XML-ABBREV"</js>
055    *    <li><b>Annotations:</b>
056    *       <ul>
057    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#language()}
058    *       </ul>
059    *    <li><b>Methods:</b>
060    *       <ul>
061    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#language(String)}
062    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#n3()}
063    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#ntriple()}
064    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#turtle()}
065    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#xml()}
066    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#xmlabbrev()}
067    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#language(String)}
068    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#n3()}
069    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#ntriple()}
070    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#turtle()}
071    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#xml()}
072    *       </ul>
073    * </ul>
074    *
075    * <h5 class='section'>Description:</h5>
076    * <p>
077    *    The RDF language to use.
078    * <p>
079    * Can be any of the following:
080    * <ul class='spaced-list'>
081    *    <li>
082    *       <js>"RDF/XML"</js>
083    *    <li>
084    *       <js>"RDF/XML-ABBREV"</js> (default)
085    *    <li>
086    *       <js>"N-TRIPLE"</js>
087    *    <li>
088    *       <js>"N3"</js> - General name for the N3 writer.
089    *       Will make a decision on exactly which writer to use (pretty writer, plain writer or simple writer) when
090    *       created.
091    *       Default is the pretty writer but can be overridden with system property
092    *       <c>org.apache.jena.n3.N3JenaWriter.writer</c>.
093    *    <li>
094    *       <js>"N3-PP"</js> - Name of the N3 pretty writer.
095    *       The pretty writer uses a frame-like layout, with prefixing, clustering like properties and embedding
096    *       one-referenced bNodes.
097    *    <li>
098    *       <js>"N3-PLAIN"</js> - Name of the N3 plain writer.
099    *       The plain writer writes records by subject.
100    *    <li>
101    *       <js>"N3-TRIPLES"</js> - Name of the N3 triples writer.
102    *       This writer writes one line per statement, like N-Triples, but does N3-style prefixing.
103    *    <li>
104    *       <js>"TURTLE"</js> -  Turtle writer.
105    *       http://www.dajobe.org/2004/01/turtle/
106    * </ul>
107    */
108   public static final String RDF_language = PREFIX + ".language.s";
109
110   /**
111    * Configuration property:  XML namespace for Juneau properties.
112    *
113    * <h5 class='section'>Property:</h5>
114    * <ul class='spaced-list'>
115    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_juneauNs RDF_juneauNs}
116    *    <li><b>Name:</b>  <js>"RdfCommon.juneauNs.s"</js>
117    *    <li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
118    *    <li><b>System property:</b>  <c>RdfCommon.juneauNs</c>
119    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JUNEAUNS</c>
120    *    <li><b>Default:</b>  <code>{j:<js>'http://www.apache.org/juneau/'</js>}</code>
121    *    <li><b>Annotations:</b>
122    *       <ul>
123    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#juneauNs()}
124    *       </ul>
125    *    <li><b>Methods:</b>
126    *       <ul>
127    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#juneauNs(Namespace)}
128    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#juneauNs(Namespace)}
129    *       </ul>
130    * </ul>
131    */
132   public static final String RDF_juneauNs = PREFIX + ".juneauNs.s";
133
134   /**
135    * Configuration property:  Default XML namespace for bean properties.
136    *
137    * <h5 class='section'>Property:</h5>
138    * <ul class='spaced-list'>
139    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_juneauBpNs RDF_juneauBpNs}
140    *    <li><b>Name:</b>  <js>"RdfCommon.juneauBpNs.s"</js>
141    *    <li><b>Data type:</b>  {@link org.apache.juneau.xml.Namespace}
142    *    <li><b>System property:</b>  <c>RdfCommon.juneauBpNs</c>
143    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JUNEAUBPNS</c>
144    *    <li><b>Default:</b>  <code>{j:<js>'http://www.apache.org/juneaubp/'</js>}</code>
145    *    <li><b>Annotations:</b>
146    *       <ul>
147    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#juneauBpNs()}
148    *       </ul>
149    *    <li><b>Methods:</b>
150    *       <ul>
151    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#juneauBpNs(Namespace)}
152    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#juneauBpNs(Namespace)}
153    *       </ul>
154    * </ul>
155    */
156   public static final String RDF_juneauBpNs = PREFIX + ".juneauBpNs.s";
157
158   /**
159    * Configuration property:  RDF/XML property: <c>iri_rules</c>.
160    *
161    * <h5 class='section'>Property:</h5>
162    * <ul class='spaced-list'>
163    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_iriRules RDF_arp_iriRules}
164    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.iri-rules.s"</js>
165    *    <li><b>Data type:</b>  <c>String</c>
166    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.iri-rules</c>
167    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_IRI_RULES</c>
168    *    <li><b>Default:</b>  <js>"lax"</js>
169    *    <li><b>Annotations:</b>
170    *       <ul>
171    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_iriRules()}
172    *       </ul>
173    * </ul>
174    *
175    * <h5 class='section'>Description:</h5>
176    * <p>
177    * Set the engine for checking and resolving.
178    *
179    * <p>
180    * Possible values:
181    * <ul class='spaced-list'>
182    *    <li>
183    *       <js>"lax"</js> - The rules for RDF URI references only, which does permit spaces although the use of spaces
184    *       is not good practice.
185    *    <li>
186    *       <js>"strict"</js> - Sets the IRI engine with rules for valid IRIs, XLink and RDF; it does not permit spaces
187    *       in IRIs.
188    *    <li>
189    *       <js>"iri"</js> - Sets the IRI engine to IRI
190    *       ({@doc http://www.ietf.org/rfc/rfc3986.txt RFC 3986},
191    *       {@doc http://www.ietf.org/rfc/rfc3987.txt RFC 3987}).
192    * </ul>
193    */
194   public static final String RDF_arp_iriRules = PREFIX + ".jena.rdfXml.iri-rules.s";
195
196   /**
197    * Configuration property:  RDF/XML ARP property: <c>error-mode</c>.
198    *
199    * <h5 class='section'>Property:</h5>
200    * <ul class='spaced-list'>
201    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_errorMode RDF_arp_errorMode}
202    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.error-mode.s"</js>
203    *    <li><b>Data type:</b>  <c>String</c>
204    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.error-mode</c>
205    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ERROR_MODE</c>
206    *    <li><b>Default:</b>  <js>"lax"</js>
207    *    <li><b>Annotations:</b>
208    *       <ul>
209    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_errorMode()}
210    *       </ul>
211    * </ul>
212    *
213    * <h5 class='section'>Description:</h5>
214    * <p>
215    * This allows a coarse-grained approach to control of error handling.
216    *
217    * <p>
218    * Possible values:
219    * <ul>
220    *    <li><js>"default"</js>
221    *    <li><js>"lax"</js>
222    *    <li><js>"strict"</js>
223    *    <li><js>"strict-ignore"</js>
224    *    <li><js>"strict-warning"</js>
225    *    <li><js>"strict-error"</js>
226    *    <li><js>"strict-fatal"</js>
227    * </ul>
228    *
229    * <ul class='seealso'>
230    *    <li>
231    *       {@doc ARP/ARPOptions.html#setDefaultErrorMode() ARPOptions.setDefaultErrorMode()}
232    *    <li>
233    *       {@doc ARP/ARPOptions.html#setLaxErrorMode() ARPOptions.setLaxErrorMode()}
234    *    <li>
235    *       {@doc ARP/ARPOptions.html#setStrictErrorMode() ARPOptions.setStrictErrorMode()}
236    *    <li>
237    *       {@doc ARP/ARPOptions.html#setStrictErrorMode(int) ARPOptions.setStrictErrorMode(int)}
238    * </ul>
239    */
240   public static final String RDF_arp_errorMode = PREFIX + ".jena.rdfXml.error-mode.s";
241
242   /**
243    * Configuration property:  RDF/XML ARP property: <c>embedding</c>.
244    *
245    * <h5 class='section'>Property:</h5>
246    * <ul class='spaced-list'>
247    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_embedding RDF_arp_embedding}
248    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.embedding.b"</js>
249    *    <li><b>Data type:</b>  <jk>boolean</jk>
250    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.embedding</c>
251    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_EMBEDDING</c>
252    *    <li><b>Default:</b>  <jk>false</jk>
253    *    <li><b>Annotations:</b>
254    *       <ul>
255    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#arp_embedding()}
256    *       </ul>
257    * </ul>
258    *
259    * <h5 class='section'>Description:</h5>
260    * <p>
261    * Sets ARP to look for RDF embedded within an enclosing XML document.
262    *
263    * <ul class='seealso'>
264    *    <li>
265    *       {@doc ARP/ARPOptions.html#setEmbedding(boolean) ARPOptions.setEmbedding(boolean)}
266    * </ul>
267    */
268   public static final String RDF_arp_embedding = PREFIX + ".jena.rdfXml.embedding.b";
269
270   /**
271    * Configuration property:  RDF/XML ARP property: <c>ERR_xxx</c>.
272    *
273    * <h5 class='section'>Property:</h5>
274    * <ul class='spaced-list'>
275    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_err_ RDF_arp_err_}
276    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.ERR_"</js>
277    *    <li><b>Data type:</b>  <c>String</c>
278    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.ERR_</c>
279    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ERR_</c>
280    * </ul>
281    *
282    * <h5 class='section'>Description:</h5>
283    * <p>
284    * Provides fine-grained control over detected error conditions.
285    *
286    * <p>
287    * Possible values:
288    * <ul>
289    *    <li><js>"EM_IGNORE"</js>
290    *    <li><js>"EM_WARNING"</js>
291    *    <li><js>"EM_ERROR"</js>
292    *    <li><js>"EM_FATAL"</js>
293    * </ul>
294    *
295    * <ul class='seealso'>
296    *    <li>
297    *       {@doc ARP/ARPErrorNumbers.html ARPErrorNumbers}
298    *    <li>
299    *       {@doc ARP/ARPOptions.html#setErrorMode(int,%20int) ARPOptions.setErrorMode(int, int)}
300    * </ul>
301    */
302   public static final String RDF_arp_err_ = PREFIX + ".jena.rdfXml.ERR_";
303
304   /**
305    * Configuration property:  RDF/XML ARP property: <c>WARN_xxx</c>.
306    *
307    * <h5 class='section'>Property:</h5>
308    * <ul class='spaced-list'>
309    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_warn_ RDF_arp_warn_}
310    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.WARN_"</js>
311    *    <li><b>Data type:</b>  <c>String</c>
312    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.WARN_</c>
313    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_WARN_</c>
314    * </ul>
315    *
316    * <h5 class='section'>Description:</h5>
317    * <p>
318    * See {@link #RDF_arp_err_} for details.
319    */
320   public static final String RDF_arp_warn_ = PREFIX + ".jena.rdfXml.WARN_";
321
322   /**
323    * RDF/XML ARP property: <c>IGN_xxx</c>.
324    *
325    * <h5 class='section'>Property:</h5>
326    * <ul class='spaced-list'>
327    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_arp_ign_ RDF_arp_ign_}
328    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.IGN_"</js>
329    *    <li><b>Data type:</b>  <c>String</c>
330    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.IGN_</c>
331    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_IGN_</c>
332    * </ul>
333    *
334    * <h5 class='section'>Description:</h5>
335    * <p>
336    * See {@link #RDF_arp_err_} for details.
337    */
338   public static final String RDF_arp_ign_ = PREFIX + ".jena.rdfXml.IGN_";
339
340   /**
341    * Configuration property:  RDF/XML property: <c>xmlbase</c>.
342    *
343    * <h5 class='section'>Property:</h5>
344    * <ul class='spaced-list'>
345    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_xmlBase RDF_rdfxml_xmlBase}
346    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.xmlbase.s"</js>
347    *    <li><b>Data type:</b>  <c>String</c>
348    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.xmlbase</c>
349    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_XMLBASE</c>
350    *    <li><b>Default:</b>  <jk>null</jk>
351    *    <li><b>Annotations:</b>
352    *       <ul>
353    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_xmlBase()}
354    *       </ul>
355    * </ul>
356    *
357    * <h5 class='section'>Description:</h5>
358    * <p>
359    * The value to be included for an <xa>xml:base</xa> attribute on the root element in the file.
360    */
361   public static final String RDF_rdfxml_xmlBase = PREFIX + ".jena.rdfXml.xmlbase.s";
362
363   /**
364    * Configuration property:  RDF/XML property: <c>longId</c>.
365    *
366    * <h5 class='section'>Property:</h5>
367    * <ul class='spaced-list'>
368    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_longId RDF_rdfxml_longId}
369    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.longId.b"</js>
370    *    <li><b>Data type:</b>  <jk>boolean</jk>
371    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.longId</c>
372    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_LONGID</c>
373    *    <li><b>Default:</b>  <jk>false</jk>
374    *    <li><b>Annotations:</b>
375    *       <ul>
376    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_longId()}
377    *       </ul>
378    * </ul>
379    *
380    * <h5 class='section'>Description:</h5>
381    * <p>
382    * Whether to use long ID's for anon resources.
383    * Short ID's are easier to read, but can run out of memory on very large models.
384    */
385   public static final String RDF_rdfxml_longId = PREFIX + ".jena.rdfXml.longId.b";
386
387   /**
388    * Configuration property:  RDF/XML property: <c>allowBadURIs</c>.
389    *
390    * <h5 class='section'>Property:</h5>
391    * <ul class='spaced-list'>
392    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_allowBadUris RDF_rdfxml_allowBadUris}
393    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.allowBadURIs.b"</js>
394    *    <li><b>Data type:</b>  <jk>boolean</jk>
395    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.allowBadURIs</c>
396    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ALLOWBADURIS</c>
397    *    <li><b>Default:</b>  <jk>false</jk>
398    *    <li><b>Annotations:</b>
399    *       <ul>
400    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_allowBadUris()}
401    *       </ul>
402    * </ul>
403    *
404    * <h5 class='section'>Description:</h5>
405    * <p>
406    * URIs in the graph are, by default, checked prior to serialization.
407    */
408   public static final String RDF_rdfxml_allowBadUris = PREFIX + ".jena.rdfXml.allowBadURIs.b";
409
410   /**
411    * Configuration property:  RDF/XML property: <c>relativeURIs</c>.
412    *
413    * <h5 class='section'>Property:</h5>
414    * <ul class='spaced-list'>
415    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_relativeUris RDF_rdfxml_relativeUris}
416    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.relativeURIs.s"</js>
417    *    <li><b>Data type:</b>  <c>String</c>
418    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.relativeURIs</c>
419    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_RELATIVEURIS</c>
420    *    <li><b>Default:</b>  <js>"same-document, absolute, relative, parent"</js>
421    *    <li><b>Annotations:</b>
422    *       <ul>
423    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_relativeUris()}
424    *       </ul>
425    * </ul>
426    *
427    * <h5 class='section'>Description:</h5>
428    * <p>
429    * What sort of relative URIs should be used.
430    *
431    * <p>
432    * A comma separate list of options:
433    * <ul class='spaced-list'>
434    *    <li>
435    *       <js>"same-document"</js> - Same-document references (e.g. <js>""</js> or <js>"#foo"</js>)
436    *    <li>
437    *       <js>"network"</js>  - Network paths (e.g. <js>"//example.org/foo"</js> omitting the URI scheme)
438    *    <li>
439    *       <js>"absolute"</js> - Absolute paths (e.g. <js>"/foo"</js> omitting the scheme and authority)
440    *    <li>
441    *       <js>"relative"</js> - Relative path not beginning in <js>"../"</js>
442    *    <li>
443    *       <js>"parent"</js> - Relative path beginning in <js>"../"</js>
444    *    <li>
445    *       <js>"grandparent"</js> - Relative path beginning in <js>"../../"</js>
446    * </ul>
447    *
448    * <p>
449    * The default value is <js>"same-document, absolute, relative, parent"</js>.
450    * To switch off relative URIs use the value <js>""</js>.
451    * Relative URIs of any of these types are output where possible if and only if the option has been specified.
452    */
453   public static final String RDF_rdfxml_relativeUris = PREFIX + ".jena.rdfXml.relativeURIs.s";
454
455   /**
456    * Configuration property:  RDF/XML property: <c>showXmlDeclaration</c>.
457    *
458    * <h5 class='section'>Property:</h5>
459    * <ul class='spaced-list'>
460    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showXmlDeclaration RDF_rdfxml_showXmlDeclaration}
461    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.showXmlDeclaration.s"</js>
462    *    <li><b>Data type:</b>  <c>String</c>
463    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.showXmlDeclaration</c>
464    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_SHOWXMLDECLARATION</c>
465    *    <li><b>Default:</b>  <js>"default"</js>
466    *    <li><b>Annotations:</b>
467    *       <ul>
468    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_showXmlDeclaration()}
469    *       </ul>
470    * </ul>
471    *
472    * <h5 class='section'>Description:</h5>
473    * <p>
474    * Possible values:
475    * <ul class='spaced-list'>
476    *    <li>
477    *       <js>"true"</js> - Add XML Declaration to the output.
478    *    <li>
479    *       <js>"false"</js> - Don't add XML Declaration to the output.
480    *    <li>
481    *       <js>"default"</js> - Only add an XML Declaration when asked to write to an <c>OutputStreamWriter</c>
482    *       that uses some encoding other than <c>UTF-8</c> or <c>UTF-16</c>.
483    *       In this case the encoding is shown in the XML declaration.
484    * </ul>
485    */
486   public static final String RDF_rdfxml_showXmlDeclaration = PREFIX + ".jena.rdfXml.showXmlDeclaration.s";
487
488   /**
489    * Configuration property:  RDF/XML property: <c>showDoctypeDeclaration</c>.
490    *
491    * <h5 class='section'>Property:</h5>
492    * <ul class='spaced-list'>
493    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_showDoctypeDeclaration RDF_rdfxml_showDoctypeDeclaration}
494    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.showDoctypeDeclaration.b"</js>
495    *    <li><b>Data type:</b>  <jk>boolean</jk>
496    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.showDoctypeDeclaration</c>
497    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_SHOWDOCTYPEDECLARATION</c>
498    *    <li><b>Default:</b>  <jk>true</jk>
499    *    <li><b>Annotations:</b>
500    *       <ul>
501    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_showDoctypeDeclaration()}
502    *       </ul>
503    * </ul>
504    *
505    * <h5 class='section'>Description:</h5>
506    * <p>
507    * If true, an XML doctype declaration is included in the output.
508    * This declaration includes a <c>!ENTITY</c> declaration for each prefix mapping in the model, and any
509    * attribute value that starts with the URI of that mapping is written as starting with the corresponding entity
510    * invocation.
511    */
512   public static final String RDF_rdfxml_showDoctypeDeclaration = PREFIX + ".jena.rdfXml.showDoctypeDeclaration.b";
513
514   /**
515    * Configuration property:  RDF/XML property: <c>tab</c>.
516    *
517    * <h5 class='section'>Property:</h5>
518    * <ul class='spaced-list'>
519    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_tab RDF_rdfxml_tab}
520    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.tab.i"</js>
521    *    <li><b>Data type:</b>  <jk>int</jk>
522    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.tab</c>
523    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_TAB</c>
524    *    <li><b>Default:</b>  <c>2</c>
525    *    <li><b>Annotations:</b>
526    *       <ul>
527    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_tab()}
528    *       </ul>
529    * </ul>
530    *
531    * <h5 class='section'>Description:</h5>
532    * <p>
533    * The number of spaces with which to indent XML child elements.
534    */
535   public static final String RDF_rdfxml_tab = PREFIX + ".jena.rdfXml.tab.i";
536
537   /**
538    * Configuration property:  RDF/XML property: <c>attributeQuoteChar</c>.
539    *
540    * <h5 class='section'>Property:</h5>
541    * <ul class='spaced-list'>
542    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_attributeQuoteChar RDF_rdfxml_attributeQuoteChar}
543    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.attributeQuoteChar.s"</js>
544    *    <li><b>Data type:</b>  <c>Character</c>
545    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.attributeQuoteChar</c>
546    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_ATTRIBUTEQUOTECHAR</c>
547    *    <li><b>Default:</b>  <js>'"'</js>
548    *    <li><b>Annotations:</b>
549    *       <ul>
550    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_attributeQuoteChar()}
551    *       </ul>
552    * </ul>
553    *
554    * <h5 class='section'>Description:</h5>
555    * <p>
556    * The XML attribute quote character.
557    */
558   public static final String RDF_rdfxml_attributeQuoteChar = PREFIX + ".jena.rdfXml.attributeQuoteChar.s";
559
560   /**
561    * Configuration property:  RDF/XML property: <c>blockRules</c>.
562    *
563    * <h5 class='section'>Property:</h5>
564    * <ul class='spaced-list'>
565    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_rdfxml_blockRules RDF_rdfxml_blockRules}
566    *    <li><b>Name:</b>  <js>"RdfCommon.jena.rdfXml.blockRules.s"</js>
567    *    <li><b>Data type:</b>  <c>String</c>
568    *    <li><b>System property:</b>  <c>RdfCommon.jena.rdfXml.blockRules</c>
569    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_RDFXML_BLOCKRULES</c>
570    *    <li><b>Default:</b>  <js>""</js>
571    *    <li><b>Annotations:</b>
572    *       <ul>
573    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#rdfxml_blockRules()}
574    *       </ul>
575    * </ul>
576    *
577    * <h5 class='section'>Description:</h5>
578    * <p>
579    * A list of <c>Resource</c> or a <c>String</c> being a comma separated list of fragment IDs from
580    * {@doc http://www.w3.org/TR/rdf-syntax-grammar RDF Syntax Grammar} indicating grammar
581    * rules that will not be used.
582    */
583   public static final String RDF_rdfxml_blockRules = PREFIX + ".jena.rdfXml.blockRules.s";
584
585   /**
586    * Configuration property:  N3/Turtle property: <c>minGap</c>.
587    *
588    * <h5 class='section'>Property:</h5>
589    * <ul class='spaced-list'>
590    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_minGap RDF_n3_minGap}
591    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.minGap.i"</js>
592    *    <li><b>Data type:</b>  <jk>int</jk>
593    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.minGap</c>
594    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_MINGAP</c>
595    *    <li><b>Default:</b>  <c>1</c>
596    *    <li><b>Annotations:</b>
597    *       <ul>
598    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_minGap()}
599    *       </ul>
600    * </ul>
601    *
602    * <h5 class='section'>Description:</h5>
603    * <p>
604    * Minimum gap between items on a line.
605    */
606   public static final String RDF_n3_minGap = PREFIX + ".jena.n3.minGap.i";
607
608   /**
609    * Configuration property:  N3/Turtle property: <c>objectLists</c>.
610    *
611    * <h5 class='section'>Property:</h5>
612    * <ul class='spaced-list'>
613    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_objectLists RDF_n3_objectLists}
614    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.objectLists.b"</js>
615    *    <li><b>Data type:</b>  <jk>boolean</jk>
616    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.objectLists</c>
617    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_OBJECTLISTS</c>
618    *    <li><b>Default:</b>  <jk>true</jk>
619    *    <li><b>Annotations:</b>
620    *       <ul>
621    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_objectLists()}
622    *       </ul>
623    * </ul>
624    *
625    * <h5 class='section'>Description:</h5>
626    * <p>
627    * Print object lists as comma separated lists.
628    */
629   public static final String RDF_n3_objectLists = PREFIX + ".jena.n3.objectLists.b";
630
631   /**
632    * Configuration property:  N3/Turtle property: <c>subjectColumn</c>.
633    *
634    * <h5 class='section'>Property:</h5>
635    * <ul class='spaced-list'>
636    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_subjectColumn RDF_n3_subjectColumn}
637    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.subjectColumn.i"</js>
638    *    <li><b>Data type:</b>  <jk>int</jk>
639    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.subjectColumn</c>
640    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_SUBJECTCOLUMN</c>
641    *    <li><b>Default:</b>  indentProperty
642    *    <li><b>Annotations:</b>
643    *       <ul>
644    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_subjectColumn()}
645    *       </ul>
646    * </ul>
647    *
648    * <h5 class='section'>Description:</h5>
649    * <p>
650    * If the subject is shorter than this value, the first property may go on the same line.
651    */
652   public static final String RDF_n3_subjectColumn = PREFIX + ".jena.n3.subjectColumn.i";
653
654   /**
655    * Configuration property:  N3/Turtle property: <c>propertyColumn</c>.
656    *
657    * <h5 class='section'>Property:</h5>
658    * <ul class='spaced-list'>
659    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_propertyColumn RDF_n3_propertyColumn}
660    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.propertyColumn.i"</js>
661    *    <li><b>Data type:</b>  <jk>int</jk>
662    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.propertyColumn</c>
663    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_PROPERTYCOLUMN</c>
664    *    <li><b>Default:</b>  <c>8</c>
665    *    <li><b>Annotations:</b>
666    *       <ul>
667    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_propertyColumn()}
668    *       </ul>
669    * </ul>
670    *
671    * <h5 class='section'>Description:</h5>
672    * <p>
673    * Width of the property column.
674    */
675   public static final String RDF_n3_propertyColumn = PREFIX + ".jena.n3.propertyColumn.i";
676
677   /**
678    * Configuration property:  N3/Turtle property: <c>indentProperty</c>.
679    *
680    * <h5 class='section'>Property:</h5>
681    * <ul class='spaced-list'>
682    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_indentProperty RDF_n3_indentProperty}
683    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.indentProperty.i"</js>
684    *    <li><b>Data type:</b>  <jk>int</jk>
685    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.indentProperty</c>
686    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_INDENTPROPERTY</c>
687    *    <li><b>Default:</b>  <c>6</c>
688    *    <li><b>Annotations:</b>
689    *       <ul>
690    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_indentProperty()}
691    *       </ul>
692    * </ul>
693    *
694    * <h5 class='section'>Description:</h5>
695    * <p>
696    * Width to indent properties.
697    */
698   public static final String RDF_n3_indentProperty = PREFIX + ".jena.n3.indentProperty.i";
699
700   /**
701    * Configuration property:  N3/Turtle property: <c>widePropertyLen</c>.
702    *
703    * <h5 class='section'>Property:</h5>
704    * <ul class='spaced-list'>
705    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_widePropertyLen RDF_n3_widePropertyLen}
706    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.widePropertyLen.i"</js>
707    *    <li><b>Data type:</b>  <jk>int</jk>
708    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.widePropertyLen</c>
709    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_WIDEPROPERTYLEN</c>
710    *    <li><b>Default:</b>  <c>20</c>
711    *    <li><b>Annotations:</b>
712    *       <ul>
713    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_widePropertyLen()}
714    *       </ul>
715    * </ul>
716    *
717    * <h5 class='section'>Description:</h5>
718    * <p>
719    * Width of the property column.
720    * Must be longer than <c>propertyColumn</c>.
721    */
722   public static final String RDF_n3_widePropertyLen = PREFIX + ".jena.n3.widePropertyLen.i";
723
724   /**
725    * Configuration property:  N3/Turtle property: <c>abbrevBaseURI</c>.
726    *
727    * <h5 class='section'>Property:</h5>
728    * <ul class='spaced-list'>
729    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_abbrevBaseUri RDF_n3_abbrevBaseUri}
730    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.abbrevBaseURI.b"</js>
731    *    <li><b>Data type:</b>  <jk>boolean</jk>
732    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.abbrevBaseURI</c>
733    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_ABBREVBASEURI</c>
734    *    <li><b>Default:</b>  <jk>true</jk>
735    *    <li><b>Annotations:</b>
736    *       <ul>
737    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_abbrevBaseUri()}
738    *       </ul>
739    * </ul>
740    *
741    * <h5 class='section'>Description:</h5>
742    * <p>
743    * Control whether to use abbreviations <c>&lt;&gt;</c> or <c>&lt;#&gt;</c>.
744    */
745   public static final String RDF_n3_abbrevBaseUri = PREFIX + ".jena.n3.abbrevBaseURI.b";
746
747   /**
748    * Configuration property:  N3/Turtle property: <c>usePropertySymbols</c>.
749    *
750    * <h5 class='section'>Property:</h5>
751    * <ul class='spaced-list'>
752    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_usePropertySymbols RDF_n3_usePropertySymbols}
753    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.usePropertySymbols.b"</js>
754    *    <li><b>Data type:</b>  <jk>boolean</jk>
755    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.usePropertySymbols</c>
756    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USEPROPERTYSYMBOLS</c>
757    *    <li><b>Default:</b>  <jk>true</jk>
758    *    <li><b>Annotations:</b>
759    *       <ul>
760    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_usePropertySymbols()}
761    *       </ul>
762    * </ul>
763    *
764    * <h5 class='section'>Description:</h5>
765    * <p>
766    * Control whether to use <c>a</c>, <c>=</c> and <c>=&gt;</c> in output
767    */
768   public static final String RDF_n3_usePropertySymbols = PREFIX + ".jena.n3.usePropertySymbols.b";
769
770   /**
771    * Configuration property:  N3/Turtle property: <c>useTripleQuotedStrings</c>.
772    *
773    * <h5 class='section'>Property:</h5>
774    * <ul class='spaced-list'>
775    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_useTripleQuotedStrings RDF_n3_useTripleQuotedStrings}
776    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.useTripleQuotedStrings.b"</js>
777    *    <li><b>Data type:</b>  <jk>boolean</jk>
778    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.useTripleQuotedStrings</c>
779    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USETRIPLEQUOTEDSTRINGS</c>
780    *    <li><b>Default:</b>  <jk>true</jk>
781    *    <li><b>Annotations:</b>
782    *       <ul>
783    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_useTripleQuotedStrings()}
784    *       </ul>
785    * </ul>
786    *
787    * <h5 class='section'>Description:</h5>
788    * <p>
789    * Allow the use of <c>"""</c> to delimit long strings.
790    */
791   public static final String RDF_n3_useTripleQuotedStrings = PREFIX + ".jena.n3.useTripleQuotedStrings.b";
792
793   /**
794    * Configuration property:  N3/Turtle property: <c>useDoubles</c>.
795    *
796    * <h5 class='section'>Property:</h5>
797    * <ul class='spaced-list'>
798    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_n3_useDoubles RDF_n3_useDoubles}
799    *    <li><b>Name:</b>  <js>"RdfCommon.jena.n3.useDoubles.b"</js>
800    *    <li><b>Data type:</b>  <jk>boolean</jk>
801    *    <li><b>System property:</b>  <c>RdfCommon.jena.n3.useDoubles</c>
802    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_JENA_N3_USEDOUBLES</c>
803    *    <li><b>Default:</b>  <jk>true</jk>
804    *    <li><b>Annotations:</b>
805    *       <ul>
806    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#n3_useDoubles()}
807    *       </ul>
808    * </ul>
809    *
810    * <h5 class='section'>Description:</h5>
811    * <p>
812    * Allow the use doubles as <c>123.456</c>.
813    */
814   public static final String RDF_n3_useDoubles = PREFIX + ".jena.n3.useDoubles.b";
815
816   /**
817    * Configuration property:  RDF format for representing collections and arrays.
818    *
819    * <h5 class='section'>Property:</h5>
820    * <ul class='spaced-list'>
821    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_collectionFormat RDF_collectionFormat}
822    *    <li><b>Name:</b>  <js>"RdfCommon.collectionFormat.s"</js>
823    *    <li><b>Data type:</b>  <c>String</c>
824    *    <li><b>System property:</b>  <c>RdfCommon.collectionFormat</c>
825    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_COLLECTIONFORMAT</c>
826    *    <li><b>Default:</b>  <js>"DEFAULT"</js>
827    *    <li><b>Annotations:</b>
828    *       <ul>
829    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#collectionFormat()}
830    *       </ul>
831    *    <li><b>Methods:</b>
832    *       <ul>
833    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#collectionFormat(RdfCollectionFormat)}
834    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#collectionFormat(RdfCollectionFormat)}
835    *       </ul>
836    * </ul>
837    *
838    * <h5 class='section'>Description:</h5>
839    * <p>
840    * Possible values:
841    * <ul class='spaced-list'>
842    *    <li>
843    *       <js>"DEFAULT"</js> - Default format.  The default is an RDF Sequence container.
844    *    <li>
845    *       <js>"SEQ"</js> - RDF Sequence container.
846    *    <li>
847    *       <js>"BAG"</js> - RDF Bag container.
848    *    <li>
849    *       <js>"LIST"</js> - RDF List container.
850    *    <li>
851    *       <js>"MULTI_VALUED"</js> - Multi-valued properties.
852    * </ul>
853    *
854    * <ul class='notes'>
855    *    <li>
856    *       If you use <js>"BAG"</js> or <js>"MULTI_VALUED"</js>, the order of the elements in the collection will get
857    *       lost.
858    * </ul>
859    */
860   public static final String RDF_collectionFormat = PREFIX + ".collectionFormat.s";
861
862   /**
863    * Configuration property:  Collections should be serialized and parsed as loose collections.
864    *
865    * <h5 class='section'>Property:</h5>
866    * <ul class='spaced-list'>
867    *    <li><b>ID:</b>  {@link org.apache.juneau.jena.RdfCommon#RDF_looseCollections RDF_looseCollections}
868    *    <li><b>Name:</b>  <js>"RdfCommon.looseCollections.b"</js>
869    *    <li><b>Data type:</b>  <jk>boolean</jk>
870    *    <li><b>System property:</b>  <c>RdfCommon.looseCollections</c>
871    *    <li><b>Environment variable:</b>  <c>RDFCOMMON_LOOSECOLLECTIONS</c>
872    *    <li><b>Default:</b>  <jk>false</jk>
873    *    <li><b>Annotations:</b>
874    *       <ul>
875    *          <li class='ja'>{@link org.apache.juneau.jena.annotation.RdfConfig#looseCollections()}
876    *       </ul>
877    *    <li><b>Methods:</b>
878    *       <ul>
879    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#looseCollections(boolean)}
880    *          <li class='jm'>{@link org.apache.juneau.jena.RdfSerializerBuilder#looseCollections()}
881    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#looseCollections(boolean)}
882    *          <li class='jm'>{@link org.apache.juneau.jena.RdfParserBuilder#looseCollections()}
883    *       </ul>
884    * </ul>
885    *
886    * <h5 class='section'>Description:</h5>
887    * <p>
888    * When specified, collections of resources are handled as loose collections of resources in RDF instead of
889    * resources that are children of an RDF collection (e.g. Sequence, Bag).
890    *
891    * <p>
892    * Note that this setting is specialized for RDF syntax, and is incompatible with the concept of
893    * losslessly representing POJO models, since the tree structure of these POJO models are lost
894    * when serialized as loose collections.
895    *
896    * <p>
897    * This setting is typically only useful if the beans being parsed into do not have a bean property
898    * annotated with {@link Rdf#beanUri @Rdf(beanUri=true)}.
899    *
900    * <h5 class='section'>Example:</h5>
901    * <p class='bcode w800'>
902    *    WriterSerializer s = RdfSerializer.<jsm>create</jsm>().xmlabbrev().looseCollections(<jk>true</jk>).build();
903    *    ReaderParser p = RdfParser.<jsm>create</jsm>().xml().looseCollections(<jk>true</jk>).build();
904    *
905    *    List&lt;MyBean&gt; l = createListOfMyBeans();
906    *
907    *    <jc>// Serialize to RDF/XML as loose resources</jc>
908    *    String rdfXml = s.serialize(l);
909    *
910    *    <jc>// Parse back into a Java collection</jc>
911    *    l = p.parse(rdfXml, LinkedList.<jk>class</jk>, MyBean.<jk>class</jk>);
912    *
913    *    MyBean[] b = createArrayOfMyBeans();
914    *
915    *    <jc>// Serialize to RDF/XML as loose resources</jc>
916    *    String rdfXml = s.serialize(b);
917    *
918    *    <jc>// Parse back into a bean array</jc>
919    *    b = p.parse(rdfXml, MyBean[].<jk>class</jk>);
920    * </p>
921    */
922   public static final String RDF_looseCollections = PREFIX + ".looseCollections.b";
923}