You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,275 @@
|
||||
//------------------------------------------------------------
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//------------------------------------------------------------
|
||||
namespace System.Xml
|
||||
{
|
||||
// Element => StartElement Attribute* Content EndElement
|
||||
// | StartElement Attribute* Text // Text must be WithEndElement
|
||||
// | Array StartElement Attribute* EndElement type MB32(Count) byte[Count * sizeof(type)]
|
||||
|
||||
// StartElement => ShortElementNode Name(LocalName)
|
||||
// | ElementNode Name(Prefix) Name(LocalName)
|
||||
// | ShortDictionaryElementNode MB32(LocalName)
|
||||
// | PrefixDictionaryElement[A-Z]Node MB32(LocalName)
|
||||
// | DictionaryElementNode Name(Prefix) MB32(LocalName)
|
||||
// | PrefixElement[A-Z]Node Name(LocalName)
|
||||
|
||||
// EndElement => EndElementNode
|
||||
// Content => (Element | ArrayElement | Text | Comment)*
|
||||
|
||||
// Attribute => ShortAttributeNode Name(LocalName) Text
|
||||
// | AttributeNode Name(Prefix) Name(LocalName) Text
|
||||
// | ShortDictionaryAttributeNode MB32(LocalName) Text
|
||||
// | DictionaryAttributeNode Name(Prefix) MB32(LocalName) Text
|
||||
// | ShortXmlnsAttributeNode Name(Namespace)
|
||||
// | XmlnsAttributeNode Name(Prefix) Name(Namespace)
|
||||
// | ShortDictionaryXmlnsAttributeNode MB32(Namespace)
|
||||
// | DictionaryXmlnsAttributeNode Name(Prefix) MB32(Namespace)
|
||||
// | PrefixAttribute[A-Z] Name(LocalName) Text
|
||||
// | PrefixDictionaryAttribute[A-Z] MB32(LocalName) Text
|
||||
|
||||
// Text => BinaryTextNode
|
||||
// | CharsTextNode
|
||||
// | EmptyTextNode
|
||||
// | DictionaryTextNode MB32(Id)
|
||||
// | ZeroTextNode
|
||||
// | OneTextNode
|
||||
// | TrueTextNode
|
||||
// | FalseTextNode
|
||||
// | Int8TextNode Int8
|
||||
// | Int16TextNode Int16
|
||||
// | Int32TextNode Int32
|
||||
// | Int64TextNode Int64
|
||||
// | FloatTextNode Float
|
||||
// | DoubleTextNode Double
|
||||
// | DecimalTextNode Decimal
|
||||
// | DateTimeTextNode DateTime
|
||||
// | StartListNode Text* EndListNode // Restriction: Cannot nest ListNode
|
||||
// | UniqueIdTextNode byte[16] // byte[16] is a Guid (from Guid.ToBinary()) (urn:uuid:xxxx-xxxx-xxx)
|
||||
// | GuidTextNode byte[16] // byte[16] is a Guid (from Guid.ToBinary()) (xxxx-xxxx-xxx)
|
||||
// | TimeSpanNode Int64
|
||||
// | UInt64TextNode UInt64
|
||||
// | BoolTextNode Int8
|
||||
// BinaryText => Bytes8TextNode UInt8 byte*
|
||||
// | Bytes16TextNode UInt16 byte*
|
||||
// | Bytes32TextNode UInt31 byte*
|
||||
// CharsText => Chars8TextNode UInt8 byte* // UTF8Chars
|
||||
// | Chars16TextNode UInt16 byte*
|
||||
// | Chars32TextNode Unt31 byte*
|
||||
// | UnicodeChars8TextNode UInt8 char*
|
||||
// | UnicodeChars16TextNode UInt16 char*
|
||||
// | UnicodeChars32TextNode UInt31 char*
|
||||
// | QNameDictionaryTextNode UInt8 MB32(LocalName) // UInt8 0-25 => 'a'-'z'
|
||||
// Comment => CommentNode Name(Text)
|
||||
// Name => MB32 byte* // Length, UTF8Chars
|
||||
// MB32(x:x>=0x80) => byte(0x80 | (x & 0x7F)) MB32(x >> 7)
|
||||
// MB32(x:x<0x80) => byte(x)
|
||||
|
||||
|
||||
// In order to help differentiate text from binary (where someone mixes up format and implementation) we overlay binary
|
||||
// nodes that are illegal to start a document with text characters that are legal to start a document. Specifically these values are:
|
||||
// ' ' = 32
|
||||
// '\t' = 9
|
||||
// '\n' = 10
|
||||
// '\r' = 13
|
||||
// '<' = 60
|
||||
// The attribute nodes (MinAttribute to MaxAttribute) overlay all of these values and are invalid as the first byte of the document
|
||||
|
||||
enum XmlBinaryNodeType
|
||||
{
|
||||
// ProcessingInstruction = 0, // Reserved (Not supported)
|
||||
EndElement = 1,
|
||||
Comment = 2,
|
||||
Array = 3,
|
||||
|
||||
MinAttribute = Array + 1,
|
||||
ShortAttribute = MinAttribute + 0,
|
||||
Attribute = MinAttribute + 1,
|
||||
ShortDictionaryAttribute = MinAttribute + 2,
|
||||
DictionaryAttribute = MinAttribute + 3,
|
||||
ShortXmlnsAttribute = MinAttribute + 4,
|
||||
XmlnsAttribute = MinAttribute + 5,
|
||||
ShortDictionaryXmlnsAttribute = MinAttribute + 6,
|
||||
DictionaryXmlnsAttribute = MinAttribute + 7,
|
||||
PrefixDictionaryAttributeA = MinAttribute + 8,
|
||||
PrefixDictionaryAttributeB = PrefixDictionaryAttributeA + 1,
|
||||
PrefixDictionaryAttributeC = PrefixDictionaryAttributeB + 1,
|
||||
PrefixDictionaryAttributeD = PrefixDictionaryAttributeC + 1,
|
||||
PrefixDictionaryAttributeE = PrefixDictionaryAttributeD + 1,
|
||||
PrefixDictionaryAttributeF = PrefixDictionaryAttributeE + 1,
|
||||
PrefixDictionaryAttributeG = PrefixDictionaryAttributeF + 1,
|
||||
PrefixDictionaryAttributeH = PrefixDictionaryAttributeG + 1,
|
||||
PrefixDictionaryAttributeI = PrefixDictionaryAttributeH + 1,
|
||||
PrefixDictionaryAttributeJ = PrefixDictionaryAttributeI + 1,
|
||||
PrefixDictionaryAttributeK = PrefixDictionaryAttributeJ + 1,
|
||||
PrefixDictionaryAttributeL = PrefixDictionaryAttributeK + 1,
|
||||
PrefixDictionaryAttributeM = PrefixDictionaryAttributeL + 1,
|
||||
PrefixDictionaryAttributeN = PrefixDictionaryAttributeM + 1,
|
||||
PrefixDictionaryAttributeO = PrefixDictionaryAttributeN + 1,
|
||||
PrefixDictionaryAttributeP = PrefixDictionaryAttributeO + 1,
|
||||
PrefixDictionaryAttributeQ = PrefixDictionaryAttributeP + 1,
|
||||
PrefixDictionaryAttributeR = PrefixDictionaryAttributeQ + 1,
|
||||
PrefixDictionaryAttributeS = PrefixDictionaryAttributeR + 1,
|
||||
PrefixDictionaryAttributeT = PrefixDictionaryAttributeS + 1,
|
||||
PrefixDictionaryAttributeU = PrefixDictionaryAttributeT + 1,
|
||||
PrefixDictionaryAttributeV = PrefixDictionaryAttributeU + 1,
|
||||
PrefixDictionaryAttributeW = PrefixDictionaryAttributeV + 1,
|
||||
PrefixDictionaryAttributeX = PrefixDictionaryAttributeW + 1,
|
||||
PrefixDictionaryAttributeY = PrefixDictionaryAttributeX + 1,
|
||||
PrefixDictionaryAttributeZ = PrefixDictionaryAttributeY + 1,
|
||||
PrefixAttributeA = PrefixDictionaryAttributeZ + 1,
|
||||
PrefixAttributeB = PrefixAttributeA + 1,
|
||||
PrefixAttributeC = PrefixAttributeB + 1,
|
||||
PrefixAttributeD = PrefixAttributeC + 1,
|
||||
PrefixAttributeE = PrefixAttributeD + 1,
|
||||
PrefixAttributeF = PrefixAttributeE + 1,
|
||||
PrefixAttributeG = PrefixAttributeF + 1,
|
||||
PrefixAttributeH = PrefixAttributeG + 1,
|
||||
PrefixAttributeI = PrefixAttributeH + 1,
|
||||
PrefixAttributeJ = PrefixAttributeI + 1,
|
||||
PrefixAttributeK = PrefixAttributeJ + 1,
|
||||
PrefixAttributeL = PrefixAttributeK + 1,
|
||||
PrefixAttributeM = PrefixAttributeL + 1,
|
||||
PrefixAttributeN = PrefixAttributeM + 1,
|
||||
PrefixAttributeO = PrefixAttributeN + 1,
|
||||
PrefixAttributeP = PrefixAttributeO + 1,
|
||||
PrefixAttributeQ = PrefixAttributeP + 1,
|
||||
PrefixAttributeR = PrefixAttributeQ + 1,
|
||||
PrefixAttributeS = PrefixAttributeR + 1,
|
||||
PrefixAttributeT = PrefixAttributeS + 1,
|
||||
PrefixAttributeU = PrefixAttributeT + 1,
|
||||
PrefixAttributeV = PrefixAttributeU + 1,
|
||||
PrefixAttributeW = PrefixAttributeV + 1,
|
||||
PrefixAttributeX = PrefixAttributeW + 1,
|
||||
PrefixAttributeY = PrefixAttributeX + 1,
|
||||
PrefixAttributeZ = PrefixAttributeY + 1,
|
||||
MaxAttribute = PrefixAttributeZ,
|
||||
|
||||
MinElement = MaxAttribute + 1,
|
||||
ShortElement = MinElement,
|
||||
Element = MinElement + 1,
|
||||
ShortDictionaryElement = MinElement + 2,
|
||||
DictionaryElement = MinElement + 3,
|
||||
PrefixDictionaryElementA = MinElement + 4,
|
||||
PrefixDictionaryElementB = PrefixDictionaryElementA + 1,
|
||||
PrefixDictionaryElementC = PrefixDictionaryElementB + 1,
|
||||
PrefixDictionaryElementD = PrefixDictionaryElementC + 1,
|
||||
PrefixDictionaryElementE = PrefixDictionaryElementD + 1,
|
||||
PrefixDictionaryElementF = PrefixDictionaryElementE + 1,
|
||||
PrefixDictionaryElementG = PrefixDictionaryElementF + 1,
|
||||
PrefixDictionaryElementH = PrefixDictionaryElementG + 1,
|
||||
PrefixDictionaryElementI = PrefixDictionaryElementH + 1,
|
||||
PrefixDictionaryElementJ = PrefixDictionaryElementI + 1,
|
||||
PrefixDictionaryElementK = PrefixDictionaryElementJ + 1,
|
||||
PrefixDictionaryElementL = PrefixDictionaryElementK + 1,
|
||||
PrefixDictionaryElementM = PrefixDictionaryElementL + 1,
|
||||
PrefixDictionaryElementN = PrefixDictionaryElementM + 1,
|
||||
PrefixDictionaryElementO = PrefixDictionaryElementN + 1,
|
||||
PrefixDictionaryElementP = PrefixDictionaryElementO + 1,
|
||||
PrefixDictionaryElementQ = PrefixDictionaryElementP + 1,
|
||||
PrefixDictionaryElementR = PrefixDictionaryElementQ + 1,
|
||||
PrefixDictionaryElementS = PrefixDictionaryElementR + 1,
|
||||
PrefixDictionaryElementT = PrefixDictionaryElementS + 1,
|
||||
PrefixDictionaryElementU = PrefixDictionaryElementT + 1,
|
||||
PrefixDictionaryElementV = PrefixDictionaryElementU + 1,
|
||||
PrefixDictionaryElementW = PrefixDictionaryElementV + 1,
|
||||
PrefixDictionaryElementX = PrefixDictionaryElementW + 1,
|
||||
PrefixDictionaryElementY = PrefixDictionaryElementX + 1,
|
||||
PrefixDictionaryElementZ = PrefixDictionaryElementY + 1,
|
||||
PrefixElementA = PrefixDictionaryElementZ + 1,
|
||||
PrefixElementB = PrefixElementA + 1,
|
||||
PrefixElementC = PrefixElementB + 1,
|
||||
PrefixElementD = PrefixElementC + 1,
|
||||
PrefixElementE = PrefixElementD + 1,
|
||||
PrefixElementF = PrefixElementE + 1,
|
||||
PrefixElementG = PrefixElementF + 1,
|
||||
PrefixElementH = PrefixElementG + 1,
|
||||
PrefixElementI = PrefixElementH + 1,
|
||||
PrefixElementJ = PrefixElementI + 1,
|
||||
PrefixElementK = PrefixElementJ + 1,
|
||||
PrefixElementL = PrefixElementK + 1,
|
||||
PrefixElementM = PrefixElementL + 1,
|
||||
PrefixElementN = PrefixElementM + 1,
|
||||
PrefixElementO = PrefixElementN + 1,
|
||||
PrefixElementP = PrefixElementO + 1,
|
||||
PrefixElementQ = PrefixElementP + 1,
|
||||
PrefixElementR = PrefixElementQ + 1,
|
||||
PrefixElementS = PrefixElementR + 1,
|
||||
PrefixElementT = PrefixElementS + 1,
|
||||
PrefixElementU = PrefixElementT + 1,
|
||||
PrefixElementV = PrefixElementU + 1,
|
||||
PrefixElementW = PrefixElementV + 1,
|
||||
PrefixElementX = PrefixElementW + 1,
|
||||
PrefixElementY = PrefixElementX + 1,
|
||||
PrefixElementZ = PrefixElementY + 1,
|
||||
MaxElement = PrefixElementZ,
|
||||
|
||||
// MinorVersion = MaxElement + 1, // Reserved (Not supported)
|
||||
|
||||
MinText = 0x80, // Must be even
|
||||
ZeroText = MinText,
|
||||
OneText = MinText + 1 * 2,
|
||||
FalseText = MinText + 2 * 2,
|
||||
TrueText = MinText + 3 * 2,
|
||||
Int8Text = MinText + 4 * 2,
|
||||
Int16Text = MinText + 5 * 2,
|
||||
Int32Text = MinText + 6 * 2,
|
||||
Int64Text = MinText + 7 * 2,
|
||||
FloatText = MinText + 8 * 2,
|
||||
DoubleText = MinText + 9 * 2,
|
||||
DecimalText = MinText + 10 * 2,
|
||||
DateTimeText = MinText + 11 * 2,
|
||||
Chars8Text = MinText + 12 * 2,
|
||||
Chars16Text = MinText + 13 * 2,
|
||||
Chars32Text = MinText + 14 * 2,
|
||||
Bytes8Text = MinText + 15 * 2,
|
||||
Bytes16Text = MinText + 16 * 2,
|
||||
Bytes32Text = MinText + 17 * 2,
|
||||
StartListText = MinText + 18 * 2,
|
||||
EndListText = MinText + 19 * 2,
|
||||
EmptyText = MinText + 20 * 2,
|
||||
DictionaryText = MinText + 21 * 2,
|
||||
UniqueIdText = MinText + 22 * 2,
|
||||
TimeSpanText = MinText + 23 * 2,
|
||||
GuidText = MinText + 24 * 2,
|
||||
UInt64Text = MinText + 25 * 2,
|
||||
BoolText = MinText + 26 * 2,
|
||||
UnicodeChars8Text = MinText + 27 * 2,
|
||||
UnicodeChars16Text = MinText + 28 * 2,
|
||||
UnicodeChars32Text = MinText + 29 * 2,
|
||||
QNameDictionaryText = MinText + 30 * 2,
|
||||
|
||||
ZeroTextWithEndElement = ZeroText + 1,
|
||||
OneTextWithEndElement = OneText + 1,
|
||||
FalseTextWithEndElement = FalseText + 1,
|
||||
TrueTextWithEndElement = TrueText + 1,
|
||||
Int8TextWithEndElement = Int8Text + 1,
|
||||
Int16TextWithEndElement = Int16Text + 1,
|
||||
Int32TextWithEndElement = Int32Text + 1,
|
||||
Int64TextWithEndElement = Int64Text + 1,
|
||||
FloatTextWithEndElement = FloatText + 1,
|
||||
DoubleTextWithEndElement = DoubleText + 1,
|
||||
DecimalTextWithEndElement = DecimalText + 1,
|
||||
DateTimeTextWithEndElement = DateTimeText + 1,
|
||||
Chars8TextWithEndElement = Chars8Text + 1,
|
||||
Chars16TextWithEndElement = Chars16Text + 1,
|
||||
Chars32TextWithEndElement = Chars32Text + 1,
|
||||
Bytes8TextWithEndElement = Bytes8Text + 1,
|
||||
Bytes16TextWithEndElement = Bytes16Text + 1,
|
||||
Bytes32TextWithEndElement = Bytes32Text + 1,
|
||||
StartListTextWithEndElement = StartListText + 1,
|
||||
EndListTextWithEndElement = EndListText + 1,
|
||||
EmptyTextWithEndElement = EmptyText + 1,
|
||||
DictionaryTextWithEndElement = DictionaryText + 1,
|
||||
UniqueIdTextWithEndElement = UniqueIdText + 1,
|
||||
TimeSpanTextWithEndElement = TimeSpanText + 1,
|
||||
GuidTextWithEndElement = GuidText + 1,
|
||||
UInt64TextWithEndElement = UInt64Text + 1,
|
||||
BoolTextWithEndElement = BoolText + 1,
|
||||
UnicodeChars8TextWithEndElement = UnicodeChars8Text + 1,
|
||||
UnicodeChars16TextWithEndElement = UnicodeChars16Text + 1,
|
||||
UnicodeChars32TextWithEndElement = UnicodeChars32Text + 1,
|
||||
QNameDictionaryTextWithEndElement = QNameDictionaryText + 1,
|
||||
MaxText = QNameDictionaryTextWithEndElement
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user