use of org.apache.jena.iri.IRI in project jena by apache.
the class URIReference method fromQName.
public static URIReference fromQName(Frame f, String ns, String local) throws SAXParseException {
URIReference rslt = new URIReference(ns + local);
f.checkEncoding(rslt, local);
// TODO: not for 2.3 move some of the check upwards ...
IRI iri = f.arp.iriFactory().create(ns + local);
AbsXMLContext.checkURI(f.arp, rslt, iri);
return rslt;
}
use of org.apache.jena.iri.IRI in project jena by apache.
the class XMLBaselessContext method withBase.
@Override
public AbsXMLContext withBase(XMLHandler forErrors, String b) throws SAXParseException {
TaintImpl taintB = new TaintImpl();
IRI newB = resolveAsURI(forErrors, taintB, b, false);
if (newB.isRelative())
return new XMLBaselessContext(forErrors, errno, newB.create(""));
if (newB.hasViolation(false))
return new XMLBaselessContext(forErrors, ERR_RESOLVING_AGAINST_MALFORMED_BASE, newB);
return new XMLContext(keepDocument(forErrors), document, newB.create(""), taintB, lang, langTaint);
}
use of org.apache.jena.iri.IRI in project jena by apache.
the class Unparser method setLocalName.
/**
* Note: must work with uri being null.
*/
private void setLocalName(String uri) {
if (uri == null || uri.equals(""))
localName = "";
else // try
{
IRI u = BaseXMLWriter.factory.create(uri);
u = u.create("");
localName = u.toString();
}
// catch (MalformedURIException e) {
// throw new BadURIException(uri, e);
// }
}
use of org.apache.jena.iri.IRI in project jena by apache.
the class SPARQL_Upload method uploadWorker.
/** Process an HTTP file upload of RDF with additiona name field for the graph name.
* We can't stream straight into a dataset because the graph name can be after the data.
* @return graph name and count
*/
// ?? Combine with Upload.fileUploadWorker
// Difference is the handling of names for graphs.
private static UploadDetails uploadWorker(HttpAction action, String base) {
DatasetGraph dsgTmp = DatasetGraphFactory.create();
ServletFileUpload upload = new ServletFileUpload();
String graphName = null;
boolean isQuads = false;
long count = -1;
String name = null;
ContentType ct = null;
Lang lang = null;
try {
FileItemIterator iter = upload.getItemIterator(action.request);
while (iter.hasNext()) {
FileItemStream item = iter.next();
String fieldName = item.getFieldName();
InputStream stream = item.openStream();
if (item.isFormField()) {
// Graph name.
String value = Streams.asString(stream, "UTF-8");
if (fieldName.equals(HttpNames.paramGraph)) {
graphName = value;
if (graphName != null && !graphName.equals("") && !graphName.equals(HttpNames.valueDefault)) {
IRI iri = IRIResolver.parseIRI(value);
if (iri.hasViolation(false))
ServletOps.errorBadRequest("Bad IRI: " + graphName);
if (iri.getScheme() == null)
ServletOps.errorBadRequest("Bad IRI: no IRI scheme name: " + graphName);
if (iri.getScheme().equalsIgnoreCase("http") || iri.getScheme().equalsIgnoreCase("https")) {
// Redundant??
if (iri.getRawHost() == null)
ServletOps.errorBadRequest("Bad IRI: no host name: " + graphName);
if (iri.getRawPath() == null || iri.getRawPath().length() == 0)
ServletOps.errorBadRequest("Bad IRI: no path: " + graphName);
if (iri.getRawPath().charAt(0) != '/')
ServletOps.errorBadRequest("Bad IRI: Path does not start '/': " + graphName);
}
}
} else if (fieldName.equals(HttpNames.paramDefaultGraphURI))
graphName = null;
else
// Add file type?
action.log.info(format("[%d] Upload: Field=%s ignored", action.id, fieldName));
} else {
// Process the input stream
name = item.getName();
if (name == null || name.equals("") || name.equals("UNSET FILE NAME"))
ServletOps.errorBadRequest("No name for content - can't determine RDF syntax");
String contentTypeHeader = item.getContentType();
ct = ContentType.create(contentTypeHeader);
lang = RDFLanguages.contentTypeToLang(ct.getContentType());
if (lang == null) {
lang = RDFLanguages.filenameToLang(name);
// present we wrap the stream accordingly
if (name.endsWith(".gz"))
stream = new GZIPInputStream(stream);
}
if (lang == null)
// Desperate.
lang = RDFLanguages.RDFXML;
isQuads = RDFLanguages.isQuads(lang);
action.log.info(format("[%d] Upload: Filename: %s, Content-Type=%s, Charset=%s => %s", action.id, name, ct.getContentType(), ct.getCharset(), lang.getName()));
StreamRDF x = StreamRDFLib.dataset(dsgTmp);
StreamRDFCounting dest = StreamRDFLib.count(x);
ActionSPARQL.parse(action, dest, stream, lang, base);
count = dest.count();
}
}
if (graphName == null || graphName.equals(""))
graphName = HttpNames.valueDefault;
if (isQuads)
graphName = null;
return new UploadDetails(graphName, dsgTmp, count);
} catch (ActionErrorException ex) {
throw ex;
} catch (Exception ex) {
ServletOps.errorOccurred(ex);
return null;
}
}
use of org.apache.jena.iri.IRI in project jena by apache.
the class FusekiVocab method iri.
private static String iri(String localname) {
String uri = NS + localname;
IRI iri = IRIResolver.parseIRI(uri);
if (iri.hasViolation(true))
throw new FusekiException("Bad IRI: " + iri);
if (!iri.isAbsolute())
throw new FusekiException("Bad IRI: " + iri);
return uri;
}
Aggregations