예제 #1
0
        public XmlDocument GetXmlDocument()
        {
            OrmXmlGeneratorSettings settings = new OrmXmlGeneratorSettings();
            OrmXmlDocumentSet       set      = GetOrmXmlDocumentSet(settings);

            return(set[0].Document);
        }
예제 #2
0
        public SettingsManager(OrmCodeDomGeneratorSettings ormCodeDomGeneratorSettings, OrmXmlGeneratorSettings ormXmlGeneratorSettings)
        {
            m_ormCodeDomGeneratorSettings = ormCodeDomGeneratorSettings;
            m_ormXmlGeneratorSettings     = ormXmlGeneratorSettings;

            m_previousManager = s_currentManager;
            s_currentManager  = this;
        }
예제 #3
0
 internal OrmXmlGenerator(OrmObjectsDef ormObjectsDef, OrmXmlGeneratorSettings settings)
 {
     _ormObjectsDef = ormObjectsDef;
     _nametable     = new NameTable();
     _nsMgr         = new XmlNamespaceManager(_nametable);
     _nsMgr.AddNamespace(OrmObjectsDef.NS_PREFIX, OrmObjectsDef.NS_URI);
     _ormXmlDocumentSet = new OrmXmlDocumentSet();
     _settings          = settings;
 }
예제 #4
0
        internal static OrmXmlDocumentSet Generate(OrmObjectsDef schema, OrmXmlGeneratorSettings settings)
        {
            OrmXmlGenerator generator;

            generator = new OrmXmlGenerator(schema, settings);

            generator.GenerateXmlDocumentInternal();

            return(generator._ormXmlDocumentSet);
        }
예제 #5
0
        private void FillImports()
        {
            if (_ormObjectsDef.Includes.Count == 0)
            {
                return;
            }
            XmlNode importsNode = CreateElement("Includes");

            _ormXmlDocumentMain.DocumentElement.AppendChild(importsNode);
            foreach (OrmObjectsDef objectsDef in _ormObjectsDef.Includes)
            {
                OrmXmlGeneratorSettings settings = (OrmXmlGeneratorSettings)_settings.Clone();
                //settings.DefaultMainFileName = _settings.DefaultIncludeFileName + _ormObjectsDef.Includes.IndexOf(objectsDef);
                OrmXmlDocumentSet set;
                set = Generate(objectsDef, _settings);
                _ormXmlDocumentSet.AddRange(set);
                foreach (OrmXmlDocument ormXmlDocument in set)
                {
                    if ((_settings.IncludeBehaviour & IncludeGenerationBehaviour.Inline) ==
                        IncludeGenerationBehaviour.Inline)
                    {
                        XmlNode importedSchemaNode =
                            _ormXmlDocumentMain.ImportNode(ormXmlDocument.Document.DocumentElement, true);
                        importsNode.AppendChild(importedSchemaNode);
                    }
                    else
                    {
                        XmlElement includeElement =
                            _ormXmlDocumentMain.CreateElement("xi", "include", "http://www.w3.org/2001/XInclude");
                        includeElement.SetAttribute("parse", "xml");

                        string fileName = GetIncludeFileName(_ormObjectsDef, objectsDef, settings);

                        includeElement.SetAttribute("href", fileName);
                        importsNode.AppendChild(includeElement);
                    }
                }
            }
        }
예제 #6
0
        public OrmXmlDocumentSet GetOrmXmlDocumentSet(OrmXmlGeneratorSettings settings)
        {
            CreateSystemComments();

            return(OrmXmlGenerator.Generate(this, settings));
        }
예제 #7
0
 private string GetIncludeFileName(OrmObjectsDef objectsDef, OrmObjectsDef incldeObjectsDef, OrmXmlGeneratorSettings settings)
 {
     if (string.IsNullOrEmpty(incldeObjectsDef.FileName))
     {
         string filename =
             settings.IncludeFileNamePattern.Replace("%MAIN_FILENAME%", GetFilename(objectsDef, settings)).
             Replace(
                 "%INCLUDE_NAME%", GetFilename(incldeObjectsDef, settings)) +
             objectsDef.Includes.IndexOf(incldeObjectsDef);
         return
             ((((settings.IncludeBehaviour & IncludeGenerationBehaviour.PlaceInFolder) ==
                IncludeGenerationBehaviour.PlaceInFolder)
                  ? settings.IncludeFolderName + System.IO.Path.DirectorySeparatorChar
                  : string.Empty) + filename);
     }
     else
     {
         return(incldeObjectsDef.FileName);
     }
 }
예제 #8
0
 private string GetFilename(OrmObjectsDef objectsDef, OrmXmlGeneratorSettings settings)
 {
     return(string.IsNullOrEmpty(objectsDef.FileName)
                ? settings.DefaultMainFileName
                : objectsDef.FileName);
 }