Justin, Unfortunately, you have to already tell the compiler what namespace to use on the root node. This is because the system has already been built wrong.
Second, I don't think this is a very good idea in general, and especially not if it should be handled by MXMLC code. This approach created a lot of problems and fundamental confusions about MXML in the past. MXML is a template. What you now put as a default (Application) may not even exist in the project that uses MXML. So, if you want to keep this template generic, you need a way to show in the template itself, what is the origin of the class that is being used. Due to the documentation and suggested workflows, there is an impression that MXML is exclusively used with mx or spark or derived components, while there is no such connection. The code below is absolutely valid MXML (at least as of version < 4 of SDK): <flash:Sprite xmlns:flash="flash.display.*"> <flash:enterFrame> super.removeEventListener(Event.ENTER_FRAME, arguments.callee); trace("This is a no-Flex MXML"); </flash:enterFrame> </flash:Sprite> In later version you'd need to specify the namespace for flex framework you are "targeting" even though it targets none... well, reason has never been a strong side of MXML. :) Now imagine you decided to put framework code forcefully into default namespace - you prevented everyone from using that namespace even though they might not be using the framework. I would see how putting things, which are unquestionably present and will likely remain so in a long time, into default namespace - the top-level Flash classes seem to be good candidates. Classes from flash.* packages aren't, because there's no analogue in JavaScript, and if you want to crosscompile to JavaScript, you'll find it to be a problem. All the mx, spark, flashx, com.adobe and similar - are just extensions, and it should be clear to anyone using the tool. On a somewhat different note, MXML being an XML variant has to adhere to XML rules, so, the code you wrote isn't valid. XML is a very bad choice for designing programming language templates, but reason has never been a strong side of MXML. (does it sound familiar yet? :)) So that's why, unlike in AS, you will have to declare the prefix you are using with the node name in the ancestor tag of the tag that is using it. You cannot really avoid doing it because of the tools that work with MXML are built on top of tools that work with XML, and if MXML breaks some basic XML rules, the tools will stop working. The only reason for using MXML, really, is that there are tools for working with XML, so you have prerequisites. But, really, if anyone was about to break the compatibility with XML, then there's no point in using lots of other things imposed by XML. Maybe it would be better to take RTF or LaTeX as a pattern... maybe YAML, or, oh horror, s-expressions! :) Best. Oleg