-Documentation

This commit is contained in:
James Newton-King
2012-08-13 23:19:37 +12:00
parent 44c2773263
commit 0b8222c7ef
8 changed files with 80 additions and 13 deletions
+62
View File
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<topic id="JsonSchema" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>Json.NET supports the JSON Schema standard via the <codeEntityReference>T:Newtonsoft.Json.Schema.JsonSchema</codeEntityReference>
and <codeEntityReference>T:Newtonsoft.Json.JsonValidatingReader</codeEntityReference> classes and sits under
the <codeEntityReference>N:Newtonsoft.Json.Schema</codeEntityReference> namespae.</para>
<para>JSON Schema is used to validate the structure and
data types of a piece of JSON, similar to XML Schema for XML. Read more about JSON Schema at
<externalLink>
<linkText>json-schema.org</linkText>
<linkUri>http://json-schema.org/</linkUri>
<linkTarget>_blank</linkTarget>
</externalLink>.</para>
</introduction>
<!-- Optional procedures followed by optional code example but must have
at least one procedure or code example -->
<section>
<title>Validating with JSON Schema</title>
<content>
<para>The simplest way to check if JSON is valid is to load the JSON into a JObject or JArray and then
use the <codeEntityReference>M:Newtonsoft.Json.Schema.Extensions.IsValid(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema)</codeEntityReference>
method with the JSON Schema.</para>
<code lang="cs" source="..\Src\Newtonsoft.Json.Tests\Documentation\JsonSchemaTests.cs" region="IsValidBasic" title="Validate JSON with IsValid" />
<para>To get validation error messages use the
<codeEntityReference>M:Newtonsoft.Json.Schema.Extensions.IsValid(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema,System.Collections.Generic.IList{System.String}@)</codeEntityReference>
or
<codeEntityReference>M:Newtonsoft.Json.Schema.Extensions.Validate(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Schema.ValidationEventHandler)</codeEntityReference>
overloads.</para>
<code lang="cs" source="..\Src\Newtonsoft.Json.Tests\Documentation\JsonSchemaTests.cs" region="IsValidMessages" title="Validate JSON with IsValid" />
<para>Internally IsValid uses <codeEntityReference>T:Newtonsoft.Json.JsonValidatingReader</codeEntityReference>
to perform the JSON Schema validation. To skip the overhead of loading JSON into a JObject/JArray, validating
the JSON and then deserializing the JSON into a class, JsonValidatingReader can be used with JsonSerializer to validate JSON while the object is being deserialized.</para>
<code lang="cs" source="..\Src\Newtonsoft.Json.Tests\Documentation\JsonSchemaTests.cs" region="JsonValidatingReader" title="Validate JSON with JsonValidatingReader" />
</content>
</section>
<section>
<title>Creating JSON Schemas</title>
<content>
<para>The simplest way to get a <codeEntityReference>T:Newtonsoft.Json.Schema.JsonSchema</codeEntityReference> object is to load it from a string or a file.</para>
<code lang="cs" source="..\Src\Newtonsoft.Json.Tests\Documentation\JsonSchemaTests.cs" region="LoadJsonSchema" title="Creating JSON Schemas from strings or files" />
<para>It is also possible to create JsonSchema objects in code.</para>
<code lang="cs" source="..\Src\Newtonsoft.Json.Tests\Documentation\JsonSchemaTests.cs" region="ManuallyCreateJsonSchema" title="Create new JSON Schemas in code" />
</content>
</section>
<relatedTopics>
<codeEntityReference>T:Newtonsoft.Json.Schema.JsonSchema</codeEntityReference>
<codeEntityReference>T:Newtonsoft.Json.JsonValidatingReader</codeEntityReference>
</relatedTopics>
</developerConceptualDocument>
</topic>
+1 -1
View File
@@ -3,7 +3,7 @@
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>LINQ to JSON is an API for working with JSON objects.
The API has been designed with LINQ in mind to enable to quick querying
It has been designed with LINQ in mind to enable to quick querying
and creation of JSON objects. LINQ to JSON sits under the
<codeEntityReference>N:Newtonsoft.Json.Linq</codeEntityReference>
namespace.</para>
+3 -2
View File
@@ -15,12 +15,13 @@
<Topic id="ReducingSerializedJSONSize" visible="True" title="Reducing Serialized JSON Size" />
<Topic id="SerializingJSONFragments" visible="True" title="Serializing Partial JSON Fragments" />
</Topic>
<Topic id="LINQtoJSON" visible="True" isExpanded="true" title="LINQ to JSON">
<Topic id="ParsingLINQtoJSON" visible="True" isSelected="true" title="Parsing JSON" />
<Topic id="LINQtoJSON" visible="True" title="LINQ to JSON">
<Topic id="ParsingLINQtoJSON" visible="True" title="Parsing JSON" />
<Topic id="CreatingLINQtoJSON" visible="True" title="Creating JSON" />
<Topic id="QueryingLINQtoJSON" visible="True" title="Querying JSON with LINQ" />
<Topic id="SelectToken" visible="True" title="Querying JSON with SelectToken" />
</Topic>
<Topic id="JsonSchema" visible="True" isSelected="true" title="Validating JSON" />
<Topic id="ReadingWritingJSON" visible="True" title="Basic Reading and Writing JSON" />
<Topic id="ConvertingJSONandXML" visible="True" title="Converting between JSON and XML" />
</Topics>
+3
View File
@@ -141,6 +141,9 @@
<None Include="ContractResolver.aml" />
<None Include="ConvertingJSONandXML.aml" />
<None Include="CreatingLINQtoJSON.aml" />
<None Include="Copy of ContractResolver.aml" />
<None Include="JsonSchema.aml" />
<None Include="JsonSchema.aml" />
<None Include="ParsingLINQtoJSON.aml" />
<None Include="QueryingLINQtoJSON.aml" />
<None Include="ReadingWritingJSON.aml" />
@@ -50,6 +50,14 @@ using File = System.IO.File;
namespace Newtonsoft.Json.Tests.Documentation
{
public static class File
{
public static StreamReader OpenText(string path)
{
return null;
}
}
public class LinqToJsonTests
{
public void LinqToJsonBasic()
@@ -218,14 +226,6 @@ namespace Newtonsoft.Json.Tests.Documentation
#endregion
}
public static class File
{
public static StreamReader OpenText(string path)
{
return null;
}
}
public void LinqToJsonReadObject()
{
#region LinqToJsonReadObject
@@ -117,6 +117,7 @@
<Compile Include="Converters\StringEnumConverterTests.cs" />
<Compile Include="Converters\VersionConverterTests.cs" />
<Compile Include="Documentation\ConvertingJsonAndXmlTests.cs" />
<Compile Include="Documentation\JsonSchemaTests.cs" />
<Compile Include="Documentation\ReadingAndWritingJsonTests.cs" />
<Compile Include="Documentation\LinqToJsonTests.cs" />
<Compile Include="Documentation\SerializationTests.cs" />
@@ -72,5 +72,5 @@ using System.Security;
// by using the '*' as shown below:
[assembly: AssemblyVersion("4.5.0.0")]
#if !PocketPC
[assembly: AssemblyFileVersion("4.5.8.15212")]
[assembly: AssemblyFileVersion("4.5.8.15213")]
#endif
@@ -91,7 +91,7 @@ using System.Security;
// by using the '*' as shown below:
[assembly: AssemblyVersion("4.5.0.0")]
#if !PocketPC
[assembly: AssemblyFileVersion("4.5.8.15212")]
[assembly: AssemblyFileVersion("4.5.8.15213")]
#endif
[assembly: CLSCompliant(true)]