The Open Protocol Notation Programming Guide 1 Document Version 1 (4/23/2018)



Download 1.37 Mb.
Page21/24
Date23.04.2018
Size1.37 Mb.
#46651
1   ...   16   17   18   19   20   21   22   23   24

JSON


The following DeclarationInfo aspect is for internal purposes only, and it is not supposed to be used by the end user.

// Explicit cast operator is provided from treedata to JSON.

json operator as (treedata t) with DeclarationInfo { OperatorKind = 
OperatorKinds.Casting };

// Gets the name of an element.

optional TreedataName get Name(this json j) with DeclarationInfo { 

Handcoded = true };

 

// Gets the kind of an element.



TreedataKind get Kind(this json j) with DeclarationInfo { 

Handcoded = true };

 

// Gets the value of an element.



optional string get Value(this json j) with DeclarationInfo { 

Handcoded = true };

 

// Gets the count of children.



int get ChildCount(this json j) with DeclarationInfo { 

Handcoded = true };

 

// Gets the children elements. 



array get Children(this json j) with DeclarationInfo { 

Handcoded = true };

// Returns a single child matched the given name from all child elements.

optional json GetChild(this json j, TreedataName name) with DeclarationInfo {  Handcoded = true };

 

// Returns a single element matched the given name from all descendant



// elements.

optional json GetDescendant(this json j, TreedataName name) with 

DeclarationInfo { Handcoded = true };

 

// Returns a filtered array of treedata matched the given name from all 



// children elements, in document order.

array GetChildren(this json j, TreedataName name) with 

DeclarationInfo {Handcoded = true };

 

// Returns a filtered array of treedata matched the given name from all 



// descendant elements, in document order.

array GetDescendants(this json j, TreedataName name) with 

DeclarationInfo { Handcoded = true };

 

// Returns a treedata using the specified XPath-like expression with 



// the specified mapping to resolve namespace prefixes.

// Returns an arbitrary one if more than one matches the path.

optional json Get(this json j, string @xpath, map resolver) 

with DeclarationInfo { Handcoded = true };

 

// Returns an array of treedata using the specified XPath-like expression 



// with the specified mapping to resolve namespace prefixes.

array GetMany(this json j, string @xpath, map resolver)  with DeclarationInfo { Handcoded = true };

// Parses string containing JSON and builds JSON object from it

// Returns null if the data is not valid JSON format. json BuildJson(string data) with DeclarationInfo { Handcoded = true };


    1. Treedata


The following DeclarationInfo aspect is for internal purposes only, and it is not supposed to be used by the end user.

// Represents a name for tree-structured data, backward compatible

// with XmlName to make it uniform with treedata and JSON.

type TreedataName {

    // Gets the local (unqualified) part of the name.

    string LocalName;

}

// Gets the name of an element.



optional TreedataName get Name(this treedata x) with DeclarationInfo { 

Handcoded = true };

 

// Just a renaming to avoid making explicit references to xml.



// The same type makes sense to JSON as well.

typedef TreedataKind = XmlKind;

// Gets the kind of an element.

TreedataKind get Kind(this treedata t) with DeclarationInfo { 

Handcoded = true };

 

// Gets the value of an element.



optional string get Value(this treedata t) with DeclarationInfo { 

Handcoded = true };

 

// Gets the count of children.



int get ChildCount(this treedata t) with DeclarationInfo { 

Handcoded = true };

 

// Gets the children elements. 



array get Children(this treedata t) with DeclarationInfo { 

Handcoded = true };

// Returns a single child matched the given name from all child elements.

optional treedata GetChild(this treedata t, TreedataName name) with 

DeclarationInfo { Handcoded = true };

 

// Returns a single element matched the given name from all descendant



// elements.

optional treedata GetDescendant(this treedata t, TreedataName name) with 


DeclarationInfo { Handcoded = true };

 

// Returns a filtered array of treedata matched the given name from all 



// children elements, in document order.

array GetChildren(this treedata t, TreedataName name) with 

DeclarationInfo { Handcoded = true };

 

// Returns a filtered array of treedata matched the given name from all 



// descendant elements, in document order.

array GetDescendants(this treedata t, TreedataName name) with

DeclarationInfo { Handcoded = true };

 

// Returns a treedata using the specified XPath-like expression with the 



// specified mapping to resolve namespace prefixes.

// Returns an arbitrary one if more than one matches the path.

optional treedata Get(this treedata x, string @xpath, map 

resolver) with DeclarationInfo { Handcoded = true };

 

// Returns an array of treedata using the specified XPath-like expression 



// with the specified mapping to resolve namespace prefixes.

array GetMany(this treedata x, string @xpath, map 

resolver) with DeclarationInfo { Handcoded = true };

    1. Date and Time


Both DateTime and TimeSpan are extern types for OPN.
module Standard;

extern type DateTime;

extern type TimeSpan;

optional DateTime ToDateTime (this string s);

optional TimeSpan ToTimeSpan(this string s); 



    1. Download 1.37 Mb.

      Share with your friends:
1   ...   16   17   18   19   20   21   22   23   24




The database is protected by copyright ©ininet.org 2024
send message

    Main page