001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.juneau.marshall.jena; 018 019import static java.lang.annotation.ElementType.*; 020import static java.lang.annotation.RetentionPolicy.*; 021 022import java.lang.annotation.*; 023 024import org.apache.juneau.marshall.*; 025import org.apache.juneau.marshall.serializer.*; 026import org.apache.juneau.marshall.xml.*; 027 028/** 029 * Annotation for specifying config properties defined in {@link XmlSerializer}, {@link XmlDocSerializer}, and {@link XmlParser}. 030 * 031 * <p> 032 * Used primarily for specifying bean configuration properties on REST classes and methods. 033 * 034 * <h5 class='section'>See Also:</h5><ul> 035 * <li class='link'>{doc jmr.RdfDetails} 036 * </ul> 037 */ 038@Target({ TYPE, METHOD }) 039@Retention(RUNTIME) 040@Inherited 041@ContextApply({ RdfConfigAnnotation.SerializerApply.class, RdfConfigAnnotation.ParserApply.class }) 042@SuppressWarnings({ 043 "java:S100" // Method names use underscore-separated namespacing convention (e.g. rdfxml_xmlbase, n3_minGap) to group related settings 044}) 045public @interface RdfConfig { 046 047 /** 048 * Add <js>"_type"</js> properties when needed. 049 * 050 * If <js>"true"</js>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred 051 * through reflection. 052 * 053 * <p> 054 * When present, this value overrides the {@link org.apache.juneau.marshall.serializer.Serializer.Builder#addBeanTypes() Serializer.Builder#addBeanTypes()} setting and is 055 * provided to customize the behavior of specific serializers in a {@link SerializerSet}. 056 * 057 * <h5 class='section'>Notes:</h5><ul> 058 * <li class='note'> 059 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 060 * </ul> 061 * 062 * <h5 class='section'>See Also:</h5><ul> 063 * <li class='jm'>{@link RdfSerializer.Builder#addBeanTypes()} 064 * </ul> 065 * 066 * @return The annotation value. 067 */ 068 String addBeanTypes() default ""; 069 070 /** 071 * Add XSI data types to non-<c>String</c> literals. 072 * 073 * <h5 class='section'>Notes:</h5><ul> 074 * <li class='note'> 075 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 076 * </ul> 077 * 078 * <h5 class='section'>See Also:</h5><ul> 079 * <li class='jm'>{@link RdfSerializer.Builder#addLiteralTypes()} 080 * </ul> 081 * 082 * @return The annotation value. 083 */ 084 String addLiteralTypes() default ""; 085 086 /** 087 * Add RDF root identifier property to root node. 088 * 089 * <p> 090 * When enabled an RDF property <c>http://www.apache.org/juneau/root</c> is added with a value of <js>"true"</js> 091 * to identify the root node in the graph. 092 * <br>This helps locate the root node during parsing. 093 * 094 * <p> 095 * If disabled, the parser has to search through the model to find any resources without incoming predicates to 096 * identify root notes, which can introduce a considerable performance degradation. 097 * 098 * <h5 class='section'>Notes:</h5><ul> 099 * <li class='note'> 100 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 101 * </ul> 102 * 103 * <h5 class='section'>See Also:</h5><ul> 104 * <li class='jm'>{@link RdfSerializer.Builder#addRootProperty()} 105 * </ul> 106 * 107 * @return The annotation value. 108 */ 109 String addRootProperty() default ""; 110 111 /** 112 * RDF format for representing collections and arrays. 113 * 114 * <ul class='values spaced-list'> 115 * <li> 116 * <js>"DEFAULT"</js> - Default format. The default is an RDF Sequence container. 117 * <li> 118 * <js>"SEQ"</js> - RDF Sequence container. 119 * <li> 120 * <js>"BAG"</js> - RDF Bag container. 121 * <li> 122 * <js>"LIST"</js> - RDF List container. 123 * <li> 124 * <js>"MULTI_VALUED"</js> - Multi-valued properties. 125 * </ul> 126 * 127 * <h5 class='section'>Notes:</h5><ul> 128 * <li class='note'> 129 * If you use <js>"BAG"</js> or <js>"MULTI_VALUED"</js>, the order of the elements in the collection will get 130 * lost. 131 * <li class='note'> 132 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 133 * </ul> 134 * 135 * <h5 class='section'>See Also:</h5><ul> 136 * <li class='jm'>{@link RdfSerializer.Builder#collectionFormat(RdfCollectionFormat)} 137 * <li class='jm'>{@link RdfParser.Builder#collectionFormat(RdfCollectionFormat)} 138 * </ul> 139 * 140 * @return The annotation value. 141 */ 142 String collectionFormat() default ""; 143 144 /** 145 * Disable auto-detect namespace usage. 146 * 147 * <p> 148 * Don't detect namespace usage before serialization. 149 * 150 * <p> 151 * If disabled, then the data structure will first be crawled looking for namespaces that will be encountered before 152 * the root element is serialized. 153 * 154 * <h5 class='section'>Notes:</h5><ul> 155 * <li class='note'> 156 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 157 * </ul> 158 * 159 * <h5 class='section'>See Also:</h5><ul> 160 * <li class='jm'>{@link RdfSerializer.Builder#disableAutoDetectNamespaces()} 161 * </ul> 162 * 163 * @return The annotation value. 164 */ 165 String disableAutoDetectNamespaces() default ""; 166 167 /** 168 * Disable reuse of XML namespaces when RDF namespaces not specified. 169 * 170 * <p> 171 * When specified, namespaces defined using {@link XmlNs @XmlNs} and {@link Xml @Xml} will be inherited by the RDF serializers. 172 * <br>Otherwise, namespaces will be defined using {@link RdfNs @RdfNs} and {@link Rdf @Rdf}. 173 * 174 * <ul class='values'> 175 * <li><js>"true"</js> 176 * <li><js>"false"</js> (default) 177 * </ul> 178 * 179 * <h5 class='section'>Notes:</h5><ul> 180 * <li class='note'> 181 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 182 * </ul> 183 * 184 * <h5 class='section'>See Also:</h5><ul> 185 * <li class='jm'>{@link RdfSerializer.Builder#disableUseXmlNamespaces()} 186 * </ul> 187 * 188 * @return The annotation value. 189 */ 190 String disableUseXmlNamespaces() default ""; 191 192 /** 193 * Default XML namespace for bean properties. 194 * 195 * <h5 class='section'>Notes:</h5><ul> 196 * <li class='note'> 197 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 198 * </ul> 199 * 200 * <h5 class='section'>See Also:</h5><ul> 201 * <li class='jm'>{@link RdfSerializer.Builder#juneauBpNs(Namespace)} 202 * <li class='jm'>{@link RdfParser.Builder#juneauBpNs(Namespace)} 203 * </ul> 204 * 205 * @return The annotation value. 206 */ 207 String juneauBpNs() default ""; 208 209 /** 210 * XML namespace for Juneau properties. 211 * 212 * <h5 class='section'>Notes:</h5><ul> 213 * <li class='note'> 214 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 215 * </ul> 216 * 217 * <h5 class='section'>See Also:</h5><ul> 218 * <li class='jm'>{@link RdfSerializer.Builder#juneauNs(Namespace)} 219 * <li class='jm'>{@link RdfParser.Builder#juneauNs(Namespace)} 220 * </ul> 221 * 222 * @return The annotation value. 223 */ 224 String juneauNs() default ""; 225 226 /** 227 * RDF language. 228 * 229 * <p> 230 * The RDF language to use. 231 * 232 * <ul class='values spaced-list'> 233 * <li> 234 * <js>"RDF/XML"</js> 235 * <li> 236 * <js>"RDF/XML-ABBREV"</js> (default) 237 * <li> 238 * <js>"N-TRIPLE"</js> 239 * <li> 240 * <js>"N3"</js> - General name for the N3 writer. 241 * Will make a decision on exactly which writer to use (pretty writer, plain writer or simple writer) when 242 * created. 243 * Default is the pretty writer but can be overridden with system property 244 * <c>org.apache.jena.n3.N3JenaWriter.writer</c>. 245 * <li> 246 * <js>"N3-PP"</js> - Name of the N3 pretty writer. 247 * The pretty writer uses a frame-like layout, with prefixing, clustering like properties and embedding 248 * one-referenced bNodes. 249 * <li> 250 * <js>"N3-PLAIN"</js> - Name of the N3 plain writer. 251 * The plain writer writes records by subject. 252 * <li> 253 * <js>"N3-TRIPLES"</js> - Name of the N3 triples writer. 254 * This writer writes one line per statement, like N-Triples, but does N3-style prefixing. 255 * <li> 256 * <js>"TURTLE"</js> - Turtle writer. 257 * http://www.dajobe.org/2004/01/turtle/ 258 * </ul> 259 * 260 * <h5 class='section'>Notes:</h5><ul> 261 * <li class='note'> 262 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 263 * </ul> 264 * 265 * <h5 class='section'>See Also:</h5><ul> 266 * <li class='jm'>{@link RdfSerializer.Builder#language(String)} 267 * <li class='jm'>{@link RdfParser.Builder#language(String)} 268 * </ul> 269 * 270 * @return The annotation value. 271 */ 272 String language() default ""; 273 274 /** 275 * Collections should be serialized and parsed as loose collections. 276 * 277 * <p> 278 * When specified, collections of resources are handled as loose collections of resources in RDF instead of 279 * resources that are children of an RDF collection (e.g. Sequence, Bag). 280 * 281 * <p> 282 * Note that this setting is specialized for RDF syntax, and is incompatible with the concept of 283 * losslessly representing POJO models, since the tree structure of these POJO models are lost 284 * when serialized as loose collections. 285 * 286 * <p> 287 * This setting is typically only useful if the beans being parsed into do not have a bean property 288 * annotated with {@link Rdf#beanUri @Rdf(beanUri=true)}. 289 * 290 * <h5 class='section'>Notes:</h5><ul> 291 * <li class='note'> 292 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 293 * </ul> 294 * 295 * <h5 class='section'>See Also:</h5><ul> 296 * <li class='jm'>{@link RdfSerializer.Builder#looseCollections()} 297 * <li class='jm'>{@link RdfParser.Builder#looseCollections()} 298 * </ul> 299 * 300 * @return The annotation value. 301 */ 302 String looseCollections() default ""; 303 304 /** 305 * N3/Turtle property: <c>disableAbbrevBaseURI</c>. 306 * 307 * <p> 308 * Controls whether to use abbreviations <c><></c> or <c><#></c>. 309 * 310 * <h5 class='section'>Notes:</h5><ul> 311 * <li class='note'> 312 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 313 * </ul> 314 * 315 * <h5 class='section'>See Also:</h5><ul> 316 * <li class='jm'>{@link RdfSerializer.Builder#n3_disableAbbrevBaseUri()} 317 * <li class='jm'>{@link RdfParser.Builder#n3_disableAbbrevBaseUri()} 318 * </ul> 319 * 320 * @return The annotation value. 321 */ 322 String n3_disableAbbrevBaseUri() default ""; 323 324 /** 325 * N3/Turtle property: <c>disableObjectLists</c>. 326 * 327 * <p> 328 * Don't print object lists as comma separated lists. 329 * 330 * <h5 class='section'>Notes:</h5><ul> 331 * <li class='note'> 332 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 333 * </ul> 334 * 335 * <h5 class='section'>See Also:</h5><ul> 336 * <li class='jm'>{@link RdfSerializer.Builder#n3_disableObjectLists()} 337 * <li class='jm'>{@link RdfParser.Builder#n3_disableObjectLists()} 338 * </ul> 339 * 340 * @return The annotation value. 341 */ 342 String n3_disableObjectLists() default ""; 343 344 /** 345 * N3/Turtle property: <c>disableUseDoubles</c>. 346 * 347 * <p> 348 * Disallow the use doubles as <c>123.456</c>. 349 * 350 * <h5 class='section'>Notes:</h5><ul> 351 * <li class='note'> 352 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 353 * </ul> 354 * 355 * <h5 class='section'>See Also:</h5><ul> 356 * <li class='jm'>{@link RdfSerializer.Builder#n3_disableUseDoubles()} 357 * <li class='jm'>{@link RdfParser.Builder#n3_disableUseDoubles()} 358 * </ul> 359 * 360 * @return The annotation value. 361 */ 362 String n3_disableUseDoubles() default ""; 363 364 /** 365 * N3/Turtle property: <c>disableUsePropertySymbols</c>. 366 * 367 * <p> 368 * Controls whether to use <c>a</c>, <c>=</c> and <c>=></c> in output 369 * 370 * <h5 class='section'>Notes:</h5><ul> 371 * <li class='note'> 372 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 373 * </ul> 374 * 375 * <h5 class='section'>See Also:</h5><ul> 376 * <li class='jm'>{@link RdfSerializer.Builder#n3_disableUsePropertySymbols()} 377 * <li class='jm'>{@link RdfParser.Builder#n3_disableUsePropertySymbols()} 378 * </ul> 379 * 380 * @return The annotation value. 381 */ 382 String n3_disableUsePropertySymbols() default ""; 383 384 /** 385 * N3/Turtle property: <c>disableUseTripleQuotedStrings</c>. 386 * 387 * <p> 388 * Disallow the use of <c>"""</c> to delimit long strings. 389 * 390 * <h5 class='section'>Notes:</h5><ul> 391 * <li class='note'> 392 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 393 * </ul> 394 * 395 * <h5 class='section'>See Also:</h5><ul> 396 * <li class='jm'>{@link RdfSerializer.Builder#n3_disableUseTripleQuotedStrings()} 397 * <li class='jm'>{@link RdfParser.Builder#n3_disableUseTripleQuotedStrings()} 398 * </ul> 399 * 400 * @return The annotation value. 401 */ 402 String n3_disableUseTripleQuotedStrings() default ""; 403 404 /** 405 * N3/Turtle property: <c>indentProperty</c>. 406 * 407 * <p> 408 * Width to indent properties. 409 * 410 * <h5 class='section'>Notes:</h5><ul> 411 * <li class='note'> 412 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 413 * </ul> 414 * 415 * <h5 class='section'>See Also:</h5><ul> 416 * <li class='jm'>{@link RdfSerializer.Builder#n3_indentProperty(int)} 417 * <li class='jm'>{@link RdfParser.Builder#n3_indentProperty(int)} 418 * </ul> 419 * 420 * @return The annotation value. 421 */ 422 String n3_indentProperty() default ""; 423 424 /** 425 * N3/Turtle property: <c>minGap</c>. 426 * 427 * <p> 428 * Minimum gap between items on a line. 429 * 430 * <h5 class='section'>Notes:</h5><ul> 431 * <li class='note'> 432 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 433 * </ul> 434 * 435 * <h5 class='section'>See Also:</h5><ul> 436 * <li class='jm'>{@link RdfSerializer.Builder#n3_minGap(int)} 437 * <li class='jm'>{@link RdfParser.Builder#n3_minGap(int)} 438 * </ul> 439 * 440 * @return The annotation value. 441 */ 442 String n3_minGap() default ""; 443 444 /** 445 * N3/Turtle property: <c>propertyColumn</c>. 446 * 447 * <p> 448 * Width of the property column. 449 * 450 * <h5 class='section'>Notes:</h5><ul> 451 * <li class='note'> 452 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 453 * </ul> 454 * 455 * <h5 class='section'>See Also:</h5><ul> 456 * <li class='jm'>{@link RdfSerializer.Builder#n3_propertyColumn(int)} 457 * <li class='jm'>{@link RdfParser.Builder#n3_propertyColumn(int)} 458 * </ul> 459 * 460 * @return The annotation value. 461 */ 462 String n3_propertyColumn() default ""; 463 464 /** 465 * N3/Turtle property: <c>subjectColumn</c>. 466 * 467 * <p> 468 * If the subject is shorter than this value, the first property may go on the same line. 469 * 470 * <h5 class='section'>Notes:</h5><ul> 471 * <li class='note'> 472 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 473 * </ul> 474 * 475 * <h5 class='section'>See Also:</h5><ul> 476 * <li class='jm'>{@link RdfSerializer.Builder#n3_subjectColumn(int)} 477 * <li class='jm'>{@link RdfParser.Builder#n3_subjectColumn(int)} 478 * </ul> 479 * 480 * @return The annotation value. 481 */ 482 String n3_subjectColumn() default ""; 483 484 /** 485 * N3/Turtle property: <c>widePropertyLen</c>. 486 * 487 * <p> 488 * Width of the property column. 489 * <br>Must be longer than <c>propertyColumn</c>. 490 * 491 * <h5 class='section'>Notes:</h5><ul> 492 * <li class='note'> 493 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 494 * </ul> 495 * 496 * <h5 class='section'>See Also:</h5><ul> 497 * <li class='jm'>{@link RdfSerializer.Builder#n3_widePropertyLen(int)} 498 * <li class='jm'>{@link RdfParser.Builder#n3_widePropertyLen(int)} 499 * </ul> 500 * 501 * @return The annotation value. 502 */ 503 String n3_widePropertyLen() default ""; 504 505 /** 506 * Default namespaces. 507 * 508 * <p> 509 * The default list of namespaces associated with this serializer. 510 * 511 * <h5 class='section'>Notes:</h5><ul> 512 * <li> 513 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 514 * </ul> 515 * 516 * <h5 class='section'>See Also:</h5><ul> 517 * <li class='jm'>{@link RdfSerializer.Builder#namespaces(Namespace...)} 518 * </ul> 519 * 520 * @return The annotation value. 521 */ 522 String[] namespaces() default {}; 523 524 /** 525 * Optional rank for this config. 526 * 527 * <p> 528 * Can be used to override default ordering and application of config annotations. 529 * 530 * @return The annotation value. 531 */ 532 int rank() default 0; 533 534 /** 535 * RDF/XML property: <c>allowBadURIs</c>. 536 * 537 * <p> 538 * URIs in the graph are, by default, checked prior to serialization. 539 * 540 * <h5 class='section'>Notes:</h5><ul> 541 * <li class='note'> 542 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 543 * </ul> 544 * 545 * <h5 class='section'>See Also:</h5><ul> 546 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_allowBadUris()} 547 * <li class='jm'>{@link RdfParser.Builder#rdfxml_allowBadUris()} 548 * </ul> 549 * 550 * @return The annotation value. 551 */ 552 String rdfxml_allowBadUris() default ""; 553 554 /** 555 * RDF/XML property: <c>attributeQuoteChar</c>. 556 * 557 * <p> 558 * The XML attribute quote character. 559 * 560 * <h5 class='section'>Notes:</h5><ul> 561 * <li class='note'> 562 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 563 * </ul> 564 * 565 * <h5 class='section'>See Also:</h5><ul> 566 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_attributeQuoteChar(char)} 567 * <li class='jm'>{@link RdfParser.Builder#rdfxml_attributeQuoteChar(char)} 568 * </ul> 569 * 570 * @return The annotation value. 571 */ 572 String rdfxml_attributeQuoteChar() default ""; 573 574 /** 575 * RDF/XML property: <c>blockRules</c>. 576 * 577 * <p> 578 * A list of <c>Resource</c> or a <c>String</c> being a comma separated list of fragment IDs from 579 * {doc http://www.w3.org/TR/rdf-syntax-grammar RDF Syntax Grammar} indicating grammar 580 * rules that will not be used. 581 * 582 * <h5 class='section'>Notes:</h5><ul> 583 * <li class='note'> 584 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 585 * </ul> 586 * 587 * <h5 class='section'>See Also:</h5><ul> 588 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_blockRules(String)} 589 * <li class='jm'>{@link RdfParser.Builder#rdfxml_blockRules(String)} 590 * </ul> 591 * 592 * @return The annotation value. 593 */ 594 String rdfxml_blockRules() default ""; 595 596 /** 597 * RDF/XML property: <c>disableShowDoctypeDeclaration</c>. 598 * 599 * <p> 600 * If true, an XML doctype declaration isn't included in the output. 601 * <br>This declaration includes a <c>!ENTITY</c> declaration for each prefix mapping in the model, and any 602 * attribute value that starts with the URI of that mapping is written as starting with the corresponding entity 603 * invocation. 604 * 605 * <h5 class='section'>Notes:</h5><ul> 606 * <li class='note'> 607 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 608 * </ul> 609 * 610 * <h5 class='section'>See Also:</h5><ul> 611 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_disableShowDoctypeDeclaration()} 612 * <li class='jm'>{@link RdfParser.Builder#rdfxml_disableShowDoctypeDeclaration()} 613 * </ul> 614 * 615 * @return The annotation value. 616 */ 617 String rdfxml_disableShowDoctypeDeclaration() default ""; 618 619 /** 620 * RDF/XML ARP property: <c>embedding</c>. 621 * 622 * <p> 623 * Sets ARP to look for RDF embedded within an enclosing XML document. 624 * 625 * <h5 class='section'>Notes:</h5><ul> 626 * <li class='note'> 627 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 628 * </ul> 629 * 630 * <h5 class='section'>See Also:</h5><ul> 631 * <li> 632 * {doc ext.ARP/ARPOptions.html#setEmbedding(boolean) ARPOptions.setEmbedding(boolean)} 633 * </ul> 634 * 635 * @return The annotation value. 636 */ 637 String rdfxml_embedding() default ""; 638 639 /** 640 * RDF/XML ARP property: <c>error-mode</c>. 641 * 642 * <p> 643 * This allows a coarse-grained approach to control of error handling. 644 * 645 * <ul class='values'> 646 * <li><js>"default"</js> 647 * <li><js>"lax"</js> 648 * <li><js>"strict"</js> 649 * <li><js>"strict-ignore"</js> 650 * <li><js>"strict-warning"</js> 651 * <li><js>"strict-error"</js> 652 * <li><js>"strict-fatal"</js> 653 * </ul> 654 * 655 * <h5 class='section'>Notes:</h5><ul> 656 * <li class='note'> 657 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 658 * </ul> 659 * 660 * <h5 class='section'>See Also:</h5><ul> 661 * <li> 662 * {doc ext.ARP/ARPOptions.html#setDefaultErrorMode() ARPOptions.setDefaultErrorMode()} 663 * <li> 664 * {doc ext.ARP/ARPOptions.html#setLaxErrorMode() ARPOptions.setLaxErrorMode()} 665 * <li> 666 * {doc ext.ARP/ARPOptions.html#setStrictErrorMode() ARPOptions.setStrictErrorMode()} 667 * <li> 668 * {doc ext.ARP/ARPOptions.html#setStrictErrorMode(int) ARPOptions.setStrictErrorMode(int)} 669 * </ul> 670 * 671 * @return The annotation value. 672 */ 673 String rdfxml_errorMode() default ""; 674 675 /** 676 * RDF/XML property: <c>iri_rules</c>. 677 * 678 * <p> 679 * Set the engine for checking and resolving. 680 * 681 * <ul class='values spaced-list'> 682 * <li> 683 * <js>"lax"</js> - The rules for RDF URI references only, which does permit spaces although the use of spaces 684 * is not good practice. 685 * <li> 686 * <js>"strict"</js> - Sets the IRI engine with rules for valid IRIs, XLink and RDF; it does not permit spaces 687 * in IRIs. 688 * <li> 689 * <js>"iri"</js> - Sets the IRI engine to IRI 690 * ({doc http://www.ietf.org/rfc/rfc3986.txt RFC 3986}, 691 * {doc http://www.ietf.org/rfc/rfc3987.txt RFC 3987}). 692 * </ul> 693 * 694 * <h5 class='section'>Notes:</h5><ul> 695 * <li class='note'> 696 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 697 * </ul> 698 * 699 * @return The annotation value. 700 */ 701 String rdfxml_iriRules() default ""; 702 703 /** 704 * RDF/XML property: <c>longId</c>. 705 * 706 * <p> 707 * Whether to use long ID's for anon resources. 708 * <br>Short ID's are easier to read, but can run out of memory on very large models. 709 * 710 * <h5 class='section'>Notes:</h5><ul> 711 * <li class='note'> 712 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 713 * </ul> 714 * 715 * <h5 class='section'>See Also:</h5><ul> 716 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_longId()} 717 * <li class='jm'>{@link RdfParser.Builder#rdfxml_longId()} 718 * </ul> 719 * 720 * @return The annotation value. 721 */ 722 String rdfxml_longId() default ""; 723 724 /** 725 * RDF/XML property: <c>relativeURIs</c>. 726 * 727 * <p> 728 * What sort of relative URIs should be used. 729 * 730 * <p> 731 * A comma separate list of options: 732 * <ul class='spaced-list'> 733 * <li> 734 * <js>"same-document"</js> - Same-document references (e.g. <js>""</js> or <js>"#foo"</js>) 735 * <li> 736 * <js>"network"</js> - Network paths (e.g. <js>"//example.org/foo"</js> omitting the URI scheme) 737 * <li> 738 * <js>"absolute"</js> - Absolute paths (e.g. <js>"/foo"</js> omitting the scheme and authority) 739 * <li> 740 * <js>"relative"</js> - Relative path not beginning in <js>"../"</js> 741 * <li> 742 * <js>"parent"</js> - Relative path beginning in <js>"../"</js> 743 * <li> 744 * <js>"grandparent"</js> - Relative path beginning in <js>"../../"</js> 745 * </ul> 746 * 747 * <p> 748 * The default value is <js>"same-document, absolute, relative, parent"</js>. 749 * To switch off relative URIs use the value <js>""</js>. 750 * Relative URIs of any of these types are output where possible if and only if the option has been specified. 751 * 752 * <h5 class='section'>Notes:</h5><ul> 753 * <li class='note'> 754 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 755 * </ul> 756 * 757 * <h5 class='section'>See Also:</h5><ul> 758 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_relativeUris(String)} 759 * <li class='jm'>{@link RdfParser.Builder#rdfxml_relativeUris(String)} 760 * </ul> 761 * 762 * @return The annotation value. 763 */ 764 String rdfxml_relativeUris() default ""; 765 766 /** 767 * RDF/XML property: <c>showXmlDeclaration</c>. 768 * 769 * <ul class='values spaced-list'> 770 * <li> 771 * <js>"true"</js> - Add XML Declaration to the output. 772 * <li> 773 * <js>"false"</js> - Don't add XML Declaration to the output. 774 * <li> 775 * <js>"default"</js> - Only add an XML Declaration when asked to write to an <c>OutputStreamWriter</c> 776 * that uses some encoding other than <c>UTF-8</c> or <c>UTF-16</c>. 777 * In this case the encoding is shown in the XML declaration. 778 * </ul> 779 * 780 * <h5 class='section'>Notes:</h5><ul> 781 * <li class='note'> 782 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 783 * </ul> 784 * 785 * <h5 class='section'>See Also:</h5><ul> 786 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_showXmlDeclaration(String)} 787 * <li class='jm'>{@link RdfParser.Builder#rdfxml_showXmlDeclaration(String)} 788 * </ul> 789 * 790 * @return The annotation value. 791 */ 792 String rdfxml_showXmlDeclaration() default ""; 793 794 /** 795 * RDF/XML property: <c>tab</c>. 796 * 797 * <p> 798 * The number of spaces with which to indent XML child elements. 799 * 800 * <h5 class='section'>Notes:</h5><ul> 801 * <li class='note'> 802 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 803 * </ul> 804 * 805 * <h5 class='section'>See Also:</h5><ul> 806 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_tab(int)} 807 * <li class='jm'>{@link RdfParser.Builder#rdfxml_tab(int)} 808 * </ul> 809 * 810 * @return The annotation value. 811 */ 812 String rdfxml_tab() default ""; 813 814 /** 815 * RDF/XML property: <c>xmlbase</c>. 816 * 817 * <p> 818 * The value to be included for an <xa>xml:base</xa> attribute on the root element in the file. 819 * 820 * <h5 class='section'>Notes:</h5><ul> 821 * <li class='note'> 822 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 823 * </ul> 824 * 825 * <h5 class='section'>See Also:</h5><ul> 826 * <li class='jm'>{@link RdfSerializer.Builder#rdfxml_xmlbase(String)} 827 * <li class='jm'>{@link RdfParser.Builder#rdfxml_xmlbase(String)} 828 * </ul> 829 * 830 * @return The annotation value. 831 */ 832 String rdfxml_xmlBase() default ""; 833 834 /** 835 * Trim whitespace from text elements. 836 * 837 * <p> 838 * If <js>"true"</js>, whitespace in text elements will be automatically trimmed. 839 * 840 * <h5 class='section'>Notes:</h5><ul> 841 * <li class='note'> 842 * Supports <a class="doclink" href="https://juneau.apache.org/docs/topics/DefaultVarResolver">VarResolver.DEFAULT</a> (e.g. <js>"$C{myConfigVar}"</js>). 843 * </ul> 844 * 845 * <h5 class='section'>See Also:</h5><ul> 846 * <li class='jm'>{@link RdfParser.Builder#trimWhitespace()} 847 * </ul> 848 * 849 * @return The annotation value. 850 */ 851 String trimWhitespace() default ""; 852}