Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CreateInnerXmlReader()

XmlReader System.Xml.XmlLoader.CreateInnerXmlReader ( string xmlFragment,
XmlNodeType nt,
XmlParserContext context,
XmlDocument doc )
inlineprivate

Definition at line 771 of file XmlLoader.cs.

772 {
773 XmlNodeType xmlNodeType = nt;
774 if (xmlNodeType == XmlNodeType.Entity || xmlNodeType == XmlNodeType.EntityReference)
775 {
776 xmlNodeType = XmlNodeType.Element;
777 }
778 XmlTextReaderImpl xmlTextReaderImpl = new XmlTextReaderImpl(xmlFragment, xmlNodeType, context);
780 if (doc.HasSetResolver)
781 {
782 xmlTextReaderImpl.XmlResolver = doc.GetResolver();
783 }
784 if (!doc.ActualLoadingStatus)
785 {
787 }
788 XmlDocumentType documentType = doc.DocumentType;
789 if (documentType != null)
790 {
791 xmlTextReaderImpl.Namespaces = documentType.ParseWithNamespaces;
792 if (documentType.DtdSchemaInfo != null)
793 {
794 xmlTextReaderImpl.SetDtdInfo(documentType.DtdSchemaInfo);
795 }
796 else
797 {
798 IDtdParser dtdParser = DtdParser.Create();
799 XmlTextReaderImpl.DtdParserProxy adapter = new XmlTextReaderImpl.DtdParserProxy(xmlTextReaderImpl);
800 IDtdInfo dtdInfo = dtdParser.ParseFreeFloatingDtd(context.BaseURI, context.DocTypeName, context.PublicId, context.SystemId, context.InternalSubset, adapter);
802 xmlTextReaderImpl.SetDtdInfo(dtdInfo);
803 }
804 }
805 if (nt == XmlNodeType.Entity || nt == XmlNodeType.EntityReference)
806 {
807 xmlTextReaderImpl.Read();
808 xmlTextReaderImpl.ResolveEntity();
809 }
810 return xmlTextReaderImpl;
811 }

References System.Xml.XmlParserContext.BaseURI, System.Xml.DtdParser.Create(), System.Xml.Dictionary, System.Xml.XmlParserContext.DocTypeName, System.Xml.XmlParserContext.InternalSubset, System.Xml.XmlParserContext.PublicId, and System.Xml.XmlParserContext.SystemId.

Referenced by System.Xml.XmlLoader.ParsePartialContent().