Example #1
0
        private Uri ParseUri(RdfACoreParserContext context, String value, RdfACurieMode mode)
        {
            switch (mode)
            {
                case RdfACurieMode.Uri:
                    //Resolve as a URI which may be relative
                    return this.ResolveUri(context, value);

                case RdfACurieMode.SafeCurieOrCurieOrUri:
                    if (this.IsSafeCurie(value))
                    {
                        //If a Safe CURIE must resolve as a CURIE ignoring if not resolvable
                        return this.ResolveSafeCurie(context, value);
                    }
                    else
                    {
                        //Otherwise try resolving as a CURIE and if not resolvable try as a URI
                        Uri u = this.ResolveCurie(context, value);
                        if (u == null)
                        {
                            //Try resolving as a URI
                            return this.ResolveUri(context, value);
                        }
                        else
                        {
                            //Resolved as a CURIE
                            return u;
                        }
                    }

                case RdfACurieMode.TermOrCurieOrAbsUri:
                    if (XmlSpecsHelper.IsNCName(value))
                    {
                        //If a Term try resolving as a term and ignore if not resolvable
                        return this.ResolveTerm(context, value);
                    }
                    else if (this.IsCurie(value))
                    {
                        //If a CURIE try resolving as a CURIE first
                        Uri u = this.ResolveCurie(context, value);
                        if (u == null)
                        {
                            //If not resolvable as a CURIE try as an absolute URI
                            return this.ResolveAbsoluteUri(value);
                        }
                        else
                        {
                            //Resolved as a CURIE
                            return u;
                        }
                    }
                    else
                    {
                        //Try resolving as an absolute URI
                        return this.ResolveAbsoluteUri(value);
                    }

                default:
                    return null;
            }
        }
Example #2
0
        private Uri ParseUri(RdfACoreParserContext context, String value, RdfACurieMode mode)
        {
            switch (mode)
            {
            case RdfACurieMode.Uri:
                //Resolve as a URI which may be relative
                return(this.ResolveUri(context, value));

            case RdfACurieMode.SafeCurieOrCurieOrUri:
                if (this.IsSafeCurie(value))
                {
                    //If a Safe CURIE must resolve as a CURIE ignoring if not resolvable
                    return(this.ResolveSafeCurie(context, value));
                }
                else
                {
                    //Otherwise try resolving as a CURIE and if not resolvable try as a URI
                    Uri u = this.ResolveCurie(context, value);
                    if (u == null)
                    {
                        //Try resolving as a URI
                        return(this.ResolveUri(context, value));
                    }
                    else
                    {
                        //Resolved as a CURIE
                        return(u);
                    }
                }

            case RdfACurieMode.TermOrCurieOrAbsUri:
                if (XmlSpecsHelper.IsNCName(value))
                {
                    //If a Term try resolving as a term and ignore if not resolvable
                    return(this.ResolveTerm(context, value));
                }
                else if (this.IsCurie(value))
                {
                    //If a CURIE try resolving as a CURIE first
                    Uri u = this.ResolveCurie(context, value);
                    if (u == null)
                    {
                        //If not resolvable as a CURIE try as an absolute URI
                        return(this.ResolveAbsoluteUri(value));
                    }
                    else
                    {
                        //Resolved as a CURIE
                        return(u);
                    }
                }
                else
                {
                    //Try resolving as an absolute URI
                    return(this.ResolveAbsoluteUri(value));
                }

            default:
                return(null);
            }
        }