in sqlserver a fully qualified table name is:
<servername>.<databasename>.<owner>.<tablename>
when schema support was added, a scheme was defined as a owner. so:
SELECT * FROM sys.schemas;
just lists the defined schema (owner) names.
you can find all the tables for a schema (dbo is the default schema name and stands for database owner):
select *
from sys.tables t
join sys.schemas s on t.schema_id = s.schema_id
where s.name = 'dbo'
you can use the object catalog to get all the schema information for other objects you want:
these are the tables tools use to generate create database scripts.