コード例 #1
0
ファイル: DTDTree.cs プロジェクト: Rajbandi/AngleSharp
        public void SubjectsDtd()
        {
            var dtd = @"<!--see Element Type Declarations
              for an explanation of the following syntax-->
            <!ELEMENT document
              (title*,subjectID,subjectname,prerequisite?,
              classes,assessment,syllabus,textbooks*)>
            <!ELEMENT prerequisite (subjectID,subjectname)>
            <!ELEMENT textbooks (author,booktitle)>
            <!ELEMENT title (#PCDATA)>
            <!ELEMENT subjectID (#PCDATA)>
            <!ELEMENT subjectname (#PCDATA)>
            <!ELEMENT classes (#PCDATA)>
            <!ELEMENT assessment (#PCDATA)>
            <!ATTLIST assessment assessment_type (exam | assignment) #IMPLIED>
            <!ELEMENT syllabus (#PCDATA)>
            <!ELEMENT author (#PCDATA)>
            <!ELEMENT booktitle (#PCDATA)>";

            var parser = new DtdParser(dtd);
            parser.Parse();

            var result = parser.Result;
            Assert.AreEqual(13, result.Count);
            Assert.AreEqual(1, result.Comments.Count());
            Assert.AreEqual(1, result.Attributes.Count());
            Assert.AreEqual(11, result.Elements.Count());
        }
コード例 #2
0
ファイル: XmlParser.cs プロジェクト: rrsc/AngleSharp
        /// <summary>
        /// Scans the external portion, i.e. the system identifier of the doctype.
        /// </summary>
        /// <param name="url">The url to use.</param>
        /// <param name="typeDefinitions">The type definitions to modify.</param>
        void ScanExternalSubset(String url, DtdContainer typeDefinitions)
        {
            if (Configuration.HasHttpRequester)
            {
                if (!Location.IsAbsolute(url))
                    url = Location.MakeAbsolute(doc.BaseURI, url);

                var http = Configuration.GetHttpRequester();
                var response = http.Request(new DefaultHttpRequest { Address = new Uri(url) });
                var stream = new SourceManager(response.Content);
                var container = new DtdContainer(typeDefinitions)
                {
                    Url = url,
                    Parent = doc
                };

                var dtd = new DtdParser(container, stream);
                dtd.IsInternal = false;
                dtd.Parse();
            }
        }
コード例 #3
0
ファイル: XmlTokenizer.cs プロジェクト: Rajbandi/AngleSharp
 void ScanInternalSubset(XmlDoctypeToken doctype)
 {
     var dtd = new DtdParser(_dtd, _src);
     dtd.IsInternal = true;
     dtd.ErrorOccurred += (s, e) => RaiseErrorOccurred(s, e);
     dtd.Parse();
     doctype.InternalSubset = dtd.Result.Text;
 }